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 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
Aug 29 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
JS中数据结构之栈
Jan 01 Javascript
JS实现给数组对象排序的方法分析
Jun 24 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 Javascript
vscode中Vue别名路径提示的实现
Jul 31 Javascript
Javascript如何实现扩充基本类型
Aug 26 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 Javascript
基于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
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
2014年安全生产责任书
2014/07/22 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2014年班干部工作总结
2014/11/25 职场文书
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
mysql的单列多值存储实例详解
2022/04/05 MySQL