基于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 相关文章推荐
Javascript中对象继承的实现小例
May 12 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
Feb 25 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
JS 调用微信扫一扫功能
Dec 22 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
jquery实现拖动效果(代码分享)
Jan 25 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 Javascript
js中offset,client , scroll 三大元素知识点总结
Sep 11 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 Javascript
javascript+css实现进度条效果
Mar 25 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
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中模拟POST传递数据的两种方法分享
2011/09/16 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
PHP钩子实现方法解析
2019/05/21 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
对python 命令的-u参数详解
2018/12/03 Python
python实现远程控制电脑
2019/05/23 Python
python生成大写32位uuid代码
2020/03/03 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
python爬取youtube视频的示例代码
2021/03/03 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
团员学习总结的自我评价范文
2013/10/14 职场文书
啤酒节策划方案
2014/05/28 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
中标通知书格式
2015/04/17 职场文书
酒店员工管理制度
2015/08/05 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
Javascript之datagrid查询详解
2021/09/15 Javascript
python实现局部图像放大
2021/11/17 Python