基于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 相关文章推荐
js 多浏览器分别判断代码
Apr 01 Javascript
异步加载script的代码
Jan 12 Javascript
浅谈Javascript事件处理程序的几种方式
Jun 27 Javascript
js分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
js使用for循环查询数组中是否存在某个值
Aug 12 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
jquery uploadify隐藏上传进度的实现方法
Feb 06 Javascript
深入理解Vue2.x的虚拟DOM diff原理
Sep 27 Javascript
layui添加动态菜单与选项卡
Jul 26 Javascript
微信小程序一周时间表功能实现
Oct 17 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
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
PHP函数积累总结
2019/03/19 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
JavaScript入门基础
2015/08/12 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
python获取糗百图片代码实例
2013/12/18 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python 字典套字典或列表的示例
2019/12/16 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
医学生个人求职信范文
2013/09/24 职场文书
海南地接欢迎词
2014/01/14 职场文书
信息技术教学反思
2014/02/12 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
SQLServer之常用函数总结详解
2021/08/30 SQL Server
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers