欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-07 17:59:01
本文实例讲述了javascript实现鼠标滚轮控制页面图片切换功能。分享给大家供大家参考,具体如下: 鼠标上的滚轮是一个不错的东东,为什么这么说,因为它能帮助我们快速的浏...

本文实例讲述了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事件相关操作与技巧大全》、《javascript数组操作技巧总结》、《javascript字符与字符串操作技巧总结》、《javascript数据结构与算法技巧总结》及《javascript错误与调试技巧总结

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