经常会在网上看到这样的操作:有几个按钮。可以控制器图片的上一张、下一张。那么现在就使用按钮的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. Resources

    McGuire Computer Graphics Data http://mesh.brown.edu/calibration/software.html Pixar Online Library ...

  2. 【iCore2双核心板视频教程二】iM_LAN 100M 以太网模块TCP通信例程

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  3. IIS5与IIS6 应用程序生命周期和页生命周期

    在写这篇博客之前,知好多前辈已经写过,自己班门弄斧,主要是加深自己对细节的理解,另一方面希望对浏览此篇文章的读者一个新的认识.注定是一长篇.肯定有新的认识,图示都是原创. 此篇所有牵涉的细节,我会一一 ...

  4. QQ、淘宝、阿里旺旺在线网页链接代码及详解 很实用

    你可直接到官网去生成代码,简单.方便,相信都能上网的你,对这不会有难度的,认识字的就行,赶紧去吧!   1.阿里旺旺官网: http://page.1688.com/html/wangwang/dow ...

  5. 【ZZ】 DShader之位移贴图(Displacement Mapping)

    http://www.myexception.cn/other/1397638.html DShader之位移贴图(Displacement Mapping) www.MyException.Cn   ...

  6. Solve one floodlight install problem

    参考: Floodlight安装 SDNLAB Floodlight官网 Installation Guide 问题: 在follow安装教程安装Floodlight的过程中,ant编译时出现了: [ ...

  7. 【转载】存储scale-up和scalce-out架构

    转自:存储scale-up和scalce-out架构 存储scale-up和scalce-out架构 Scale-up,即纵向扩展架构.从下面的拓扑图我们可见,纵向扩展是利用现有的存储系统,通过不断增 ...

  8. 归纳整理 PHP大神的十大优良习惯

    2015年03月04日11:26 来源:程序师 作者:TECHUG 编辑:覃里 查看全文 赞(0)评论(0) 分享 标签: PHP , 编程指南 , PHP开源项目 [IT168 资讯] 1.多阅读手 ...

  9. xampp默认mysql密码设置,修改mysql的默认空密码

    xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthent ...

  10. TCP协议中的三次握手和四次挥手(图解)(转载http://blog.csdn.net/whuslei/article/details/6667471)

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源 ...