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 相关文章推荐
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
深入了解javascript中的prototype与继承
Apr 14 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
jQuery插件制作之参数用法实例分析
Jun 01 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
js,jq,css多方面实现简易下拉菜单功能
May 13 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
jQuery中使用validate插件校验表单功能
May 24 jQuery
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
javascript递归函数定义和用法示例分析
Jul 22 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
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
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
5种处理js跨域问题方法汇总
2014/12/04 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
JavaScript实现左侧菜单效果
2017/12/14 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
Vue 打包体积优化方案小结
2020/05/20 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Python 类的继承实例详解
2017/03/25 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
深入浅析Python中的yield关键字
2018/01/24 Python
Python单元测试简单示例
2018/07/03 Python
Django添加sitemap的方法示例
2018/08/06 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Python3 log10()函数简单用法
2019/02/19 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
html5时钟实现代码
2010/10/22 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
银行自荐信范文
2013/10/07 职场文书
个人求职简历的自我评价范文
2013/10/09 职场文书
研究生毕业鉴定
2014/01/29 职场文书
培训主管岗位职责
2014/02/01 职场文书
小学母亲节活动总结
2015/02/10 职场文书
开学第一周总结
2015/07/16 职场文书
2016入党心得体会范文
2016/01/06 职场文书
2019年教师入党申请书
2019/06/27 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
深入理解 Golang 的字符串
2022/05/04 Golang