基于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 相关文章推荐
Extjs学习笔记之二 初识Extjs之Form
Jan 07 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
javascript省市区三级联动下拉框菜单实例演示
Nov 29 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 Javascript
JavaScript中return用法示例
Nov 29 Javascript
bootstrap侧边栏圆点导航
Jan 11 Javascript
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
详解小程序横屏方案对比
Jun 28 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
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
js调用屏幕宽度的简单方法
2016/11/14 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
微信小程序实现简易table表格
2020/06/19 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
python 导入数据及作图的实现
2019/12/03 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
德国自行车商店:Tretwerk
2019/06/21 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
上课迟到检讨书
2014/01/19 职场文书
入党自我评价范文
2014/02/02 职场文书
总经理的岗位职责
2014/02/23 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
毕业横幅标语
2014/10/08 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
js作用域及作用域链工作引擎
2022/07/07 Javascript