经常会在网上看到这样的操作:有几个按钮。可以控制器图片的上一张、下一张。那么现在就使用按钮的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:画廊案例的更多相关文章

  1. JavaScript 入门案例

    四.  JavaScript 入门案例 在看本节之前,笔者建议您先看 JavaScript 基础篇  https://www.cnblogs.com/IT-LFP/p/10945884.html 1. ...

  2. JavaScript小案例-阶乘!

    JavaScript小案例-阶乘! 阶乘:就是像台阶一样一阶一阶的,从高阶到低阶,依次乘下来!代码超少!容易理解! // factorial 阶乘 // 如果 function factorial(n ...

  3. JavaScript DOM编程艺术第四章 — JavaScript图片库案例研究

    这一章通过JavaScript图片库案例,学习了一些DOM属性. HTML代码 <!DOCTYPE html> <html> <head> <meta cha ...

  4. javascript基础案例解析

    学完了JavaScript基础部分,总结出一些基本案例,以备日后查看! 1.九九乘法口诀表:在控制台中输出九九乘法口诀表!代码如下: <!DOCTYPE html> <html> ...

  5. html笔记05:html、css、javascript综合案例

    1.首先是html代码: <!-- markup time --> <div class="wrapper wb"> <div class=" ...

  6. javascript 精典案例分析一览

    1.[优雅代码]深入浅出 妙用Javascript中apply.call.bind http://www.cnblogs.com/coco1s/p/4833199.html 2.1.0.1 ionic ...

  7. 一个用于每一天JavaScript示例-SVG中间javaScript画廊

    <?xml version="1.0" standalone="no"? > <!DOCTYPE svg PUBLIC "-//W3 ...

  8. JavaScript常见案例

    一.点灯开关控制: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...

  9. JavaScript的案例(数据校验,js轮播图,页面定时弹窗)

    1.数据校验            步骤            1.确定事件(onsubmit)并绑定一个函数            2.书写这个函数,获取数据,并绑定id            3. ...

随机推荐

  1. shell 循环

    for循环: 批量删除.gz结尾的文件: 循环打包文件并备份到一个目录下面: find ./ -maxdepth 1 -name "*.gz" find ./ -maxdepth ...

  2. js不能执行的几个小白错误

    1.如果使用jquery,而没有将js代码写在$(function(){}):里边,没等dom全部加载完,在执行时出现错误 2.如果感觉都写对了却没有执行,那么可能是在想要执行的函数前有一加载就能执行 ...

  3. Html - a标签如何包裹Div

    a标签如何包裹Div? 其实应该将思路转变为将a标签作为一个遮罩来覆盖div. 做法是将a标签放置在该div下,通过将div进行相对定位[position:relative] 将a标签进行绝对定位[p ...

  4. ondragover 事件规定在何处放置被拖动的数据

    nternet Explorer 9.Firefox.Opera 12.Chrome 以及 Safari 5 支持拖放. 被拖元素,dragElement : 1.添加事件:ondragstart 2 ...

  5. PHP 设计模式 笔记与总结(1)命名空间 与 类的自动载入

    ① PHP 面向对象高级特性 ② 11 种 PHP 设计模式 ③ PSR-0,Composer,Phar 等最流行的技术 目标是掌握 PHP 各类设计模式,以及具备设计纯面向对象框架和系统的能力 [命 ...

  6. CSS Questions:Front-end Developer Interview Questions

    Describe what a "reset" CSS file does and how it's useful. What Is A CSS Reset? A CSS Rese ...

  7. Apache查看并发及TIME_WAIT过多的解决

    1.查看并发#ps -ef | grep httpd -c2.查看并发数及tpc连接状态netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) pri ...

  8. 看StackOverflow如何用25台服务器撑起5.6亿的月PV

    问答社区网络 StackExchange 由 100 多个网站构成,其中包括了 Alexa 排名第 54 的 StackOverflow.StackExchang 有 400 万用户,每月 5.6 亿 ...

  9. single-chip microcomputer Microcontroller 单片机 单片微型计算机 微控制器

    https://zh.wikipedia.org/wiki/单片机 单片机,全称单片微型计算机(英语:single-chip microcomputer),又称微控制器(microcontroller ...

  10. android studio无法关联源码

    1.查看源码的时候报这个, 说找不到API 23的源码 2.本地的SDK 3.google  stackoverflow 给出解决方案 http://stackoverflow.com/questio ...