基于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的给文章加入关键字链接
Oct 26 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
对于Form表单reset方法的新认识
Mar 05 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
javascript常用经典算法详解
Jan 11 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
微信小程序checkbox组件使用详解
Jan 31 Javascript
Vue实现购物车实例代码两则
May 30 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
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
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
JavaScript中的排序算法代码
2011/02/22 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
Python类型转换的魔术方法详解
2020/12/23 Python
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
super()与this()的区别
2016/01/17 面试题
银行个人求职自荐信范文
2013/12/16 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
模具专业自荐信
2014/05/29 职场文书
2016春季运动会前导词
2015/11/25 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
 Python 中 logging 模块使用详情
2022/03/03 Python