JavaScript:画廊案例
经常会在网上看到这样的操作:有几个按钮。可以控制器图片的上一张、下一张。那么现在就使用按钮的click单击事件来切换img的图片。
此时由于只是简单的演示,将所有的图片保存在images目录中。所有的图片应该使用相同的命名前缀,如”pic_*.jpg“。假设”*.jpg”的取出范围为:1~3。
注意:如果增加到3了,那么就重新从1开始显示;如果减小到1了,那么就从3开始显示。
范例1:手动切换图片
event.html
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="description" content=event.html"">
<meta name="keywords" content="event,html,js">
<title>javascript的程序开发之事件处理</title>
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<div id="pictureDiv">
<img src="data:images/pic_1.jpg" id="picImg">
</div>
<div id="buttonDiv">
<button id="previousBtn">上一张</button>
<button id="nextBtn">下一张</button>
</div>
</body>
</html>
event.js
/*
要求:使用按钮的单击事件来切换img的图片
*/
var index = 1;
function picChanged (index) {
//获取HTML元素图片对象
var obj = document.getElementById("picImg"); //重新设置图片
obj.src = "images/pic_"+index+".jpg";
} window.onload = function(){ //为onload事件绑定事件
//获取HTML元素上一张按钮对象
var previousBtn = document.getElementById("previousBtn"); //为上一张按钮对象绑定事件
if (previousBtn != undefined) {
previousBtn.addEventListener("click",function(){
if (index > 1){
index--
}else{
index = 3;
}
picChanged(index);
},false);
}; //获取HTML元素下一张按钮对象
var nextBtn = document.getElementById("nextBtn"); //为下一张按钮对象绑定事件
if (nextBtn != undefined) {
nextBtn.addEventListener("click",function(){
if (index < 3) {
index++
}else{
index = 1;
}
picChanged(index);
},false);
};
}
pic_1.jpg pic_2.jpg
pic_3.jpg

发现,现在的操作都是人为去进行切换,那么也可以实现自动切换。使用setTimeout函数进行自动切换。
setTimeout(执行函数,间隔):间隔一毫秒为单位
范例2:自动切换图片
event.html
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="description" content=event.html"">
<meta name="keywords" content="event,html,js">
<title>javascript的程序开发之事件处理</title>
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<div id="pictureDiv">
<img src="data:images/pic_1.jpg" id="picImg">
</div>
</body>
</html>
event.js
/*
要求:使用定时器自动来切换img的图片
*/
var index = 1; //默认从第一张开始显示
function picChanged () { //切换图片 if (index < 3) {
index ++;
}else{
index = 1; //已经显示完了,那么需要重新显示
} //获取HTML元素图片对象
var obj = document.getElementById("picImg"); //重新设置图片
obj.src = "images/pic_"+index+".jpg"; //定时器执行操作
setTimeout(function() {
picChanged();
}, 1000);
} window.onload = function(){ //为onload事件绑定事件
//定时器执行操作
// setTimeout(function() {
// picChanged();
// }, 1000);
setTimeout(picChanged(),1000);
}
总结:
1—每一个HTML元素实际上在JavaScript都表示一个对象,对象可以调用里面的属性;
2—每一个元素都可以利用addEventListener()函数动态绑定,并且最为重要的是,都会在页面加载后绑定;
3—取得元素对象:document.getElementById(“ID名称”)。
JavaScript:画廊案例的更多相关文章
- JavaScript 入门案例
四. JavaScript 入门案例 在看本节之前,笔者建议您先看 JavaScript 基础篇 https://www.cnblogs.com/IT-LFP/p/10945884.html 1. ...
- JavaScript小案例-阶乘!
JavaScript小案例-阶乘! 阶乘:就是像台阶一样一阶一阶的,从高阶到低阶,依次乘下来!代码超少!容易理解! // factorial 阶乘 // 如果 function factorial(n ...
- JavaScript DOM编程艺术第四章 — JavaScript图片库案例研究
这一章通过JavaScript图片库案例,学习了一些DOM属性. HTML代码 <!DOCTYPE html> <html> <head> <meta cha ...
- javascript基础案例解析
学完了JavaScript基础部分,总结出一些基本案例,以备日后查看! 1.九九乘法口诀表:在控制台中输出九九乘法口诀表!代码如下: <!DOCTYPE html> <html> ...
- html笔记05:html、css、javascript综合案例
1.首先是html代码: <!-- markup time --> <div class="wrapper wb"> <div class=" ...
- javascript 精典案例分析一览
1.[优雅代码]深入浅出 妙用Javascript中apply.call.bind http://www.cnblogs.com/coco1s/p/4833199.html 2.1.0.1 ionic ...
- 一个用于每一天JavaScript示例-SVG中间javaScript画廊
<?xml version="1.0" standalone="no"? > <!DOCTYPE svg PUBLIC "-//W3 ...
- JavaScript常见案例
一.点灯开关控制: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...
- JavaScript的案例(数据校验,js轮播图,页面定时弹窗)
1.数据校验 步骤 1.确定事件(onsubmit)并绑定一个函数 2.书写这个函数,获取数据,并绑定id 3. ...
随机推荐
- @JSON(serialize=false),过滤不需要的变量
@JSON(serialize=false),过滤不需要的变量 在用struts2返回json类型的数据时,json会自动转换需要转换成json形式的变量,如果哪个变量不需要的话,则可以在该变量的 ...
- uc_key getshell
<?php $key = 'cebbvi5s15BSiMXteaP9TNCIz5K5jAVekw7tcV9TqmYCNT5VOJdu7toOxipTX';#uc_key 写在这里 $url = ...
- Mui - 全局css
头部(mh) <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-ic ...
- Css - 黑魔法
我们发现了一个新功能,现在你可以创建sticky块元素了.这和 fixed 块元素一样,但不同的是, sticky 块元素是不会遮挡另一个块元素的,最好看看demo 类似的功能实现还可以使用jquer ...
- Java泛型总结
1. 什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的 ...
- Mongodb 创建索引
db.getCollection('ct_project').ensureIndex({'pro_code':1}) 创建索引 db.getCollection('ct_project').ensu ...
- HDU 1430 魔板(康托展开+BFS+预处理)
魔板 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- ASP.NET MVC3系列页面缓存、缓存依赖SQL(真实项目注意细节)
缓存依赖数据库 第一步 1通过vs里面带的命令提示窗口. 2或者.NET Framework 版本 4(64 位系统)条件,%windir%\Microsoft.NET\Framework64\v4. ...
- windows服务器。linux服务器的集成包推荐
我对linux不熟悉,这个有点不好意思,虽然我是做php开发的.我只是对apache+php+mysql的操作熟悉而已,但是linux的服务器配置什么的都太懂 所以我就安装了windows2008,安 ...
- FZU 2028 BFS+vector
一个普通的bfs 如果不看样例和input的解释... 四个0真是神样例 又被input误导 以为每个点都按顺序有标号 传送门的终点给的是一个点的标号 然后结果是什么呢?无尽的runtime erro ...