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 相关文章推荐
input输入框的自动匹配(原生代码)
Mar 19 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
JSON相关知识汇总
Jul 03 Javascript
js实现文件上传表单域美化特效
Nov 02 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
AngularJS基础 ng-srcset 指令简单示例
Aug 03 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
Angular数据绑定机制原理
Apr 17 Javascript
javascript防抖函数debounce详解
Jun 11 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
Jun 14 Javascript
使用Vue实现调用接口加载页面初始数据
Oct 28 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
PHP中的use关键字概述
2014/07/23 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
vue实现简单图片上传
2020/06/30 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
Python使用openpyxl复制整张sheet
2021/03/24 Python
扩大国家免疫规划实施方案
2014/03/21 职场文书
村庄环境整治方案
2014/05/15 职场文书
岗位工作说明书
2014/07/29 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
旅行社计调工作总结
2015/08/12 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
Python Matplotlib绘制条形图的全过程
2021/10/24 Python