基于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中的isXX系列
Aug 01 Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 Javascript
javascript匿名函数实例分析
Nov 18 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
Apr 29 Javascript
BootStrap实现手机端轮播图左右滑动事件
Oct 13 Javascript
JavaScript队列、优先队列与循环队列
Nov 14 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
Aug 10 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 Javascript
Vue组件为什么data必须是一个函数
Jun 11 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python IDLE清空窗口的实例
2018/06/25 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
python django中8000端口被占用的解决
2019/12/17 Python
Linux Interview Questions For software testers
2012/06/02 面试题
大学系主任推荐信范文
2013/12/24 职场文书
节约用水倡议书
2014/04/16 职场文书
个人考核材料
2014/05/15 职场文书
房屋授权委托书范本
2014/10/07 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL