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 相关文章推荐
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
js Form.elements[i]的使用实例
Nov 13 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
css结合js制作下拉菜单示例代码
Feb 27 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
Dec 29 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
vue微信分享插件使用方法详解
Feb 18 Javascript
JS array数组检测方式解析
May 19 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+DBM的同学录程序(4)
2006/10/09 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
Javascript 类与静态类的实现
2010/04/01 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
python文件写入实例分析
2015/04/08 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python和shell获取文本内容的方法
2018/06/05 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
努比亚手机官网:nubia
2016/10/06 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
18岁生日感言
2014/01/12 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
开业主持词
2014/03/21 职场文书
小班下学期评语
2014/05/04 职场文书
毕业生面试求职信
2014/06/23 职场文书
先进单位事迹材料
2014/12/25 职场文书
2015年大学生实习评语
2015/03/25 职场文书
超强台风观后感
2015/06/09 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js