javascript滚轮事件基础实例讲解(37)


Posted in Javascript onFebruary 14, 2017

本文实例为大家分享了js滚轮事件的具体代码,供大家参考,具体内容如下

<html> 
  <head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <style type="text/css"> 
      #box1{ 
        width: 100px; 
        height: 100px; 
        background-color: red; 
      } 
       
    </style> 
     
    <script type="text/javascript"> 
       
      window.onload = function(){ 
         
        //使div可以跟随鼠标滚轮滚动来改变高度 
        //滚轮向下滚,div变高 滚轮向上滚 div变短 
         
        //获取box1 
        var box1 = document.getElementById("box1"); 
         
        /* 
         * onmousewheel 
         * - 鼠标滚轮滚动的事件,但是该事件火狐浏览器并不支持 
         * - 在火狐中需要使用DOMMouseScroll,这个事件只能通过addEventListener()来绑定 
         */ 
        //为box1绑定一个鼠标滚轮滚动的事件 
        box1.onmousewheel = function(event){ 
          event = event || window.event; 
           
          //判断滚轮滚动的方向 
          /* 
           * wheelDelta 
           * - 事件对象中的属性,可以用来判断鼠标滚轮滚动的方向 
           * - 向下滚 -120 向上滚 +120 
           * - 该属性的值并不重要,重要的是值的符号,需要通过符号来判断滚动的方向 
           * - 但是该属性火狐浏览器并不支持 
           */ 
          //alert(event.wheelDelta); 
           
          /* 
           * 火狐中通过detail来判断方向 
           * - 向上滚 -3  向下滚 +3 
           */ 
          //alert(event.detail); 
           
          if(event.wheelDelta < 0 || event.detail > 0){ 
            //向下滚 
            //增加box1的高度 
            box1.style.height = box1.offsetHeight + 10 + "px"; 
             
          }else{ 
            //向上滚 
            //减小box1的高度 
            box1.style.height = box1.offsetHeight - 10 + "px"; 
          } 
           
           
          /* 
           * 使用addEventListener()绑定的事件,不能通过return false来取消默认行为 
           * 需要调用事件对象 preventDefault()方法来取消默认行为 
           * 但是在IE8中没有该方法 
           */ 
          event.preventDefault && event.preventDefault(); 
           
          //当页面中有滚动条时,由于滚轮滚动的默认行为会导致页面整体下移 
          //取消默认行为 
          return false; 
           
        }; 
         
        bind(box1 , "DOMMouseScroll" , box1.onmousewheel); 
         
         
      }; 
       
      function bind(obj , eventStr , callback){ 
         
        if(obj.addEventListener){ 
          //如果是正常浏览器 
          obj.addEventListener(eventStr , callback , false); 
        }else{ 
          //IE8 
          obj.attachEvent("on"+eventStr , function(){ 
            callback.call(obj); 
          }); 
        } 
      } 
       
    </script> 
  </head> 
  <body style="height: 3000px;"> 
     
    <div id="box1"></div> 
     
     
  </body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
JavaScript实现上下浮动的窗口效果代码
Oct 12 Javascript
jquery中object对象循环遍历的方法
Dec 18 Javascript
json的使用小结
Jun 08 Javascript
js HTML5上传示例代码完整版
Oct 10 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
Angular使用Md5加密的解决方法
Sep 16 Javascript
4 种滚动吸顶实现方式的比较
Apr 09 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
Sep 28 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
基于canvas的二维码邀请函生成插件
Feb 14 #Javascript
javascript事件的绑定基础实例讲解(34)
Feb 14 #Javascript
javascript深拷贝和浅拷贝详解
Feb 14 #Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 #Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 #Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 #Javascript
js基于myFocus实现轮播图效果
Feb 14 #Javascript
You might like
php开发文档 会员收费1期
2012/08/14 PHP
深入分析php之面向对象
2013/05/15 PHP
php Calender(日历)代码分享
2014/01/03 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python实现基本线性数据结构
2016/08/22 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
浅析Python 条件控制语句
2020/07/15 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
Final类有什么特点
2012/04/25 面试题
实习自我鉴定
2013/12/15 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
廉政教育的心得体会
2014/09/01 职场文书
房屋过户委托书范本
2014/10/07 职场文书
打架检讨书
2015/01/27 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
python中tkinter复选框使用操作
2021/11/11 Python