JavaScript实现鼠标滚轮控制页面图片切换


本文摘自PHP中文网,作者小云云,侵删。

鼠标上的滚轮是一个不错的东东,为什么这么说,因为它能帮助我们快速的浏览网页,快速的进行长篇文章的阅读。对于web前端的我们来说又怎么能不注重这个鼠标滚轮呢,那么它能如何让用户更好的浏览网页呢?本文主要介绍JavaScript实现鼠标滚轮控制页面图片切换功能,涉及javascript事件响应及页面元素动态操作相关实现技巧,需要的朋友可以参考下,希望能帮助到大家。

最常见就是图片的切换了,能通过滚动滚轮进行图片的浏览,省得用户还要去点下一张,做这种繁琐的步骤。来看个简单的例子吧。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

<!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>

  <p 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;">

  </p>

</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循环只是让图片有顺序的隐藏和显示,相信这个不难看懂。

文中错误与疏漏之处欢迎大家指正。

相关推荐:

js控制页面字体大小的问题_html/css_WEB-ITnose

jQuery学习笔记之控制页面实现代码_jquery

js 控制页面跳转的5种方法_javascript技巧

以上就是JavaScript实现鼠标滚轮控制页面图片切换的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript怎么定义对象数组

javascript的map方法有什么用

举例说明js调用php和php调用js的方法

javascript b包是什么

javascript怎么保留两位小数

json解析是什么?

javascript如何获取焦点和失去焦点

如何使用js实现简单日历效果

介绍我们是如何搭建互动应用

javascript如何转换时间

更多相关阅读请进入《javascript》频道 >>




JavaScript 从入门到项目实践
书籍

JavaScript 从入门到项目实践

清华大学出版社

本书采取“基础知识→核心应用→核心技术→高级应用→行业应用→项目实践”的结构和“由浅入深,由深到精”的学习模式进行讲解。全书共35章,不仅介绍了HTML、CSS、对象、函数、事件等JavaScript语言的基础知识,而且深入介绍了jQuery、客户端、服务器端、数据存储等核心技术。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...