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 相关文章推荐
javascript编程起步(第三课)
Feb 27 Javascript
javascript  Error 对象 错误处理
May 18 Javascript
IE与firefox之jquery用法区别
Oct 03 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
jquery 获取表单元素里面的值示例代码
Jul 28 Javascript
node.js中watch机制详解
Nov 17 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
简单谈谈关于Angular Cli打包的事
Sep 05 Javascript
laydate日历控件使用方法详解
Nov 20 Javascript
node中的session的具体使用
Sep 14 Javascript
JS实现电商商品展示放大镜特效
Jan 07 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代码
2016/10/08 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
什么是JavaScript
2009/08/13 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
求职简历的自我评价怎样写好
2013/10/07 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
项目投资意向书范本
2015/05/09 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫