JavaScript实现鼠标滚轮控制页面图片切换功能示例


Posted in Javascript onOctober 14, 2017

本文实例讲述了JavaScript实现鼠标滚轮控制页面图片切换功能。分享给大家供大家参考,具体如下:

鼠标上的滚轮是一个不错的东东,为什么这么说,因为它能帮助我们快速的浏览网页,快速的进行长篇文章的阅读。对于web前端的我们来说又怎么能不注重这个鼠标滚轮呢,那么它能如何让用户更好的浏览网页呢?

最常见就是图片的切换了,能通过滚动滚轮进行图片的浏览,省得用户还要去点下一张,做这种繁琐的步骤。来看个简单的例子吧。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标通过滚动滚轮切换图片</title>
<style>
#picBox{
  width:800px;height:600px;
  margin:70px auto;
  }
</style>
<script>
  var nowPic=1;
  function MouseWheel(e){
    var pic;
    e=e||window.event;
    for(i=1;i<4;i++){
      if(i==nowPic){
          if(e.wheelDelta){//IE
              pic=document.getElementById("pic"+i);
              pic.style.display="block";
            }else if(e.detail){//Firefox
              pic=document.getElementById("pic"+i);
              pic.style.display="block";
            }
        }else{
          pic=document.getElementById("pic"+i);
          pic.style.display="none";
        }
      }
      if(nowPic>=3){
        nowPic=1;
      }else{
        nowPic++;
      }
    }
  /*Firefox注册事件*/
  if(document.addEventListener){
      document.addEventListener("DOMMouseScroll",MouseWheel,false);
    }
  window.onmousewheel=document.onmousewheel=MouseWheel;//IE/Opera/Chrome
</script>
</head>
<body>
  <h3 align="center">鼠标通过滚动滚轮切换图片</h3>
  <div id="picBox">
    <img src="http://picm.bbzhi.com/dongwubizhi/dongwuheji/dongwuheji_69803_m.jpg" width="800px" height="600px" id="pic1">
<span style="white-space:pre">   </span><img src="http://pic1a.nipic.com/2008-12-22/2008122204359187_2.jpg" width="800px" height="600px" id="pic2" style="display:none;">
<span style="white-space:pre">   </span><img src="http://imgphoto.gmw.cn/attachement/jpg/site2/20121221/002564a60ce4123e17614e.jpg" width="800px" height="600px" id="pic3" style="display:none;">
  </div>
</body>
</html>

重点讲解下js代码,不同的浏览器鼠标滚轮事件也不一样,说白点就是兼容性问题,主要是有两种,onmousewheel(IE/Opera/Safari/Chrome)和DOMMouseScroll(Firefox),如果想兼容firefox,应采用addEventListener监听,这个函数有3个参数,addEventListener(type,listener,useCapture),type就是click,focus......类型,而listener可以直接写方法function(){},也可以调用写好的方法体,如我的例子。useCapture是一个布尔值,只有true和false,表示该事件的响应顺序,选false则采用bubbing(冒泡)方式,选项true采用Capture方式。对于addEventListener以后会出一个详解。

在MouseWheel方法中e.wheelDelta兼容IE等其它浏览器,每当滚动一次滚轮会返回+3/-3(上滚/下滚),而e.detail兼容Firefox浏览器,每当滚动一次滚轮会返回+120/-120(上滚/下滚),通过这些返回的值可以做出是向上还是向下滚动的判断。而for循环只是让图片有顺序的隐藏和显示,相信这个不难看懂。

文中错误与疏漏之处欢迎大家指正。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
fromCharCode和charCodeAt 方法
Dec 27 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
May 28 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
JS中对数组元素进行增删改移的方法总结
Dec 15 Javascript
js实现无缝滚动图
Feb 22 Javascript
Bootstrap提示框效果的实例代码
Jul 12 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
Oct 24 Javascript
vue-amap根据地址回显地图并mark的操作
Nov 03 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 #jQuery
jQuery基于cookie实现换肤功能实例
Oct 14 #jQuery
浅谈vue路径优化之resolve
Oct 13 #Javascript
薪资那么高的Web前端必看书单
Oct 13 #Javascript
vue router demo详解
Oct 13 #Javascript
JS实现的简单表单验证功能示例
Oct 13 #Javascript
javascript基于定时器实现进度条功能实例
Oct 13 #Javascript
You might like
PHP开发中四种查询返回结果分析
2011/01/02 PHP
10个实用的PHP代码片段
2011/09/02 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
js控住DOM实现发布微博效果
2016/08/30 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
人机交互程序 python实现人机对话
2017/11/14 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
python中time.ctime()实例用法
2021/02/03 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
SQL面试题
2013/12/09 面试题
《母亲的恩情》教学反思
2014/02/13 职场文书
开业庆典策划方案
2014/02/18 职场文书
旷课检讨书500字
2014/10/14 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL