基于jquery实现鼠标滚轮驱动的图片切换效果


Posted in Javascript onOctober 26, 2015

jQuery可以制作出与Flash媲美的动画效果,这点绝对毋庸置疑,本文将通过实例演示一个基于鼠标滚轮驱动的图片切换效果。

基于jquery实现鼠标滚轮驱动的图片切换效果

本例实现的效果:
鼠标滚轮滚动时图片进行切换。
支持键盘方向键实现图片切换效果。
支持点击图片切换,支持点击当前图片链接。
进度条滑块展示图片图片数量进度。

XHTML

<div class="demo"> 
 <div id="imageflow"> 
 <div id="loading"><img src="images/loader.gif" alt="loading" /></div> 
 <div id="captions"></div> 
 <div id="images"> 
 <img src="images/s1.jpg" alt="image1" /> 
 <img src="images/s2.jpg" alt="image2" /> 
 <img src="images/s3.jpg" alt="image3" /> 
 <img src="images/s4.jpg" alt="image4" /> 
 </div> 
 <div id="scrollbar"> 
 <div id="slider"></div> 
 </div> 
 </div> 
</div>

div.demo是最外面的一层,包含了整个滚动效果所需的所有元素。#imageflow是必需的,且与其内部包含的元素的ID名称不能修改,如确实要修改,就要先定义或直接修改JS代码了。#loading用来装载一个加载动画的图片,当然你也可以直接写成"loading"或其他文字。#captions用来显示图片的标题。#images放置所要滚动切换的图片,数量不限。#scrollbar就是展示图片的进度条。#slider是一个滑块,当切换图片时,滑块会滑动到相应的位置,以展示图片数量的位置。
CSS

.demo { width:860px; height:300px; margin:20px auto; position:relative; background:#e8f5fe; overflow:hidden } 
#images { margin:20px 0 0 60px; width:860px } 
#images img { position:absolute; margin-top:-160px } 
#loading { margin:0; color:#fff; text-align:center } 
#loading img { position:ralative; margin:0 } 
#captions { position:relative; height:24px; line-height:24px; top:100px; left:320px; background:url(images/cap_bg.png) no-repeat center center; color:#fff; font-weight:bold; text-align:center; z-index:10000 } 
#scrollbar { position:relative; top:-100px; height:2px; z-index:10001 background:#abcd3a url(images/scroll.gif) repeat-x; 
} 
#slider { position:absolute; width:15px; height:4px; margin:-1px 0 0 -1px; background:url(images/bar.gif) no-repeat; z-index:10002 }

CSS是整个效果实现的关键部分,如果CSS控制不好,将得不到你要的效果。
.demo设置了宽度和高度,并设置position:relative和overflow:hidden,目的是为了让鼠标滑轮滚动作用的范围限制在.demo里。#images设置了margin值,并对内部的img设置了相对定位。#captions设置了用来显示图片标题的样式,注意我使用半透明的图片cap_bg.png作为背景图片,在IE6下不支持透明的png图片,所以你要进行相关的处理。接下来看滚动进度条和滑块的设置,都运用的定位和深度设置,为何要这样设置,只有大家去慢慢测试才会知道其中的奥妙。
引入jquery库和滑动js文件

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/imageflow.js"></script>

所有的js动作都在imageflow.js完成,我只做了略微的改动,大家可以直接使用。
现在可以看到效果了吧。但是还有问题:
图片连接地址如何获取?
最终的效果应该是点击当前展示的图片时,会连接到一个页面,用来展示该图片相关的详细信息。那么这个链接地址如何获取,大概在第252行开始有这样两行代码:

image.url = image.getAttribute("longdesc"); 
image.ondblclick = function() { document.location = this.url; }

可以看出,图片的链接地址来源于它的属性:longdesc,当单击图片的时候,页面将会跳转到相应的地址页面。好现在我们回到刚开始的XHTML代码,只需给每张图片指定longdesc属性,并将值设为对应的网页地址。如:

<img src="images/s1.jpg" alt="image1" longdesc="#" />

现在,任务算是完成了。看完本例你会发现,你根本不需要些一句jquery代码,因为imageflow都已经完成了所有的操作代码。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
Dec 25 Javascript
javascript实现的在当前窗口中漂浮框的代码
Mar 15 Javascript
用innerhtml提高页面打开速度的方法
Aug 02 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
jquery实现华丽的可折角广告代码
Sep 02 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
Feb 08 Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
Nov 08 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 #Javascript
jquery移动端TAB触屏切换实现效果
Dec 22 #Javascript
基于jQuery实现搜索关键字自动匹配功能
Mar 26 #Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 #Javascript
Windows下用PyCharm和Visual Studio开始Python编程
Oct 26 #Javascript
php利用curl获取远程图片实现方法
Oct 26 #Javascript
jQuery.trim() 函数及trim()用法详解
Oct 26 #Javascript
You might like
桌面中心(三)修改数据库
2006/10/09 PHP
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
用javascript实现画板的代码
2007/09/05 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
python中nan与inf转为特定数字方法示例
2017/05/11 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
MySQL面试题
2014/01/12 面试题
单位消防安全制度
2014/01/12 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
培训专员岗位职责
2014/02/26 职场文书
Python制作表白爱心合集
2022/01/22 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL