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 相关文章推荐
浅析Prototype的模板类 Template
Dec 07 Javascript
判断js对象是否拥有某一个属性的js代码
Aug 16 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
js基础之DOM中元素对象的属性方法详解
Oct 28 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
Dec 06 Javascript
微信小程序云开发(数据库)详解
May 17 Javascript
React中的Context应用场景分析
Jun 11 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/03/25 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
JS链式调用的实现方法
2013/03/07 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
python的re模块应用实例
2014/09/26 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
计算机科学与技术应届生求职信
2013/11/07 职场文书
交通法规咨询中心工作职责
2013/11/27 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
总经理司机岗位职责
2015/04/10 职场文书
保险内勤岗位职责
2015/04/13 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
辞职申请书范本
2019/05/20 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python