滑动鼠标的滚轮,从而实现div的高度发生变化。当我们的下滑的时候,div的高度变高,上滑高度变低。
具体的代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#d {width: 800px;height: 100px;background-color: yellow;}</style><script>window.onload = function () {var d = document.getElementById("d");d.onwheel = function (event) {console.log("开始滚动");event = event || window.event;if (event.wheelDelta > 0 || event.detail < 0) {//向上滚,box1变短d.style.height = d.clientHeight - 10 + "px";console.log("变短");} else {//向下滚,box1变长d.style.height = d.clientHeight + 10 + "px";console.log("变长");}event.preventDefault && event.preventDefault();return false;};bindObj(d, "DOMMouseScroll", d.onmousewheel);};function bindObj(obj, eventStr, callback) {if (obj.addEventListener) {//大部分浏览器兼容的方式obj.addEventListener(eventStr, callback, false);} else {/** this是谁由调用方式决定* callback.call(obj)*///IE8及以下obj.attachEvent("on" + eventStr, function () {//在匿名函数中调用回调函数callback.call(obj);});}}</script>
</head><body><div id="d"></div>
</body></html>


现在,我们大概看下代码的具体逻辑。首先我们通过id获取div的对象d,接着给给d设置滚动事件 onmousewheel,接着我们要判断滚动的方向,event.wheelDelta > 0表示向上滚,event.detail < 0也表示向上滚,这里需要注意下event.wheelDelta不支持·火狐浏览器。如果我们在有浏览器中,在div里面进行滚动,浏览器的滚动给条也会跟着滚动,这样体验不太好。为了解决这个问题,我们在代码里返回false,就可以解决这个问题。还有一种情况,使用addEventListener()方法绑定响应函数,取消默认行为时不能使用return false, 需要使用event来取消默认行为event.preventDefault();但是IE8浏览器不支持event.preventDefault()这个方法,如果直接调用,就会报错。
onmousewheel不支持火狐浏览器,所以为了支持火狐浏览器,我们需要重新顶一个绑定方法,在这个方法里,我们需要使用addEventListener。

JavaScript滚轮事件相关推荐

  1. JavaScript基础14-day16【事件委派、事件绑定、事件传播、滚轮事件、键盘事件、键盘移动div】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  2. html鼠标滚轮监听,javascript监听鼠标滚轮事件浅析

    我们都见到过这些效果,用鼠标滚轮实现某个表单内的数字增加减少操作,或者滚轮控制某个按钮的左右,上下滚动.这些都是通过js对鼠标滚轮的事件监听来实现的.今天这里介绍的是一点简单的js对于鼠标滚轮事件的监 ...

  3. html页面禁止滚轮事件,javascript实现禁止鼠标滚轮事件

    平时我们兼容什么东西总是在调整低版本IE的兼容性,但是这回不是因为低版本浏览器不给力.而是因为火狐给力过头了,完全不顾其它浏览器的感受标新立异了.除了火狐之外,所有的浏览器都可以使用MouseWhee ...

  4. 13.4.3 鼠标与滚轮事件【JavaScript高级程序设计第三版】

    鼠标事件是Web 开发中最常用的一类事件,毕竟鼠标还是最主要的定位设备.DOM3 级事件中定义了9 个鼠标事件,简介如下. click:在用户单击主鼠标按钮(一般是左边的按钮)或者按下回车键时触发.这 ...

  5. javascript 鼠标事件总结

    本文转自:http://www.jb51.net/article/21590.htm javascript的鼠标事件是个比较庞大的家族.需要的朋友可以参考下. 常见的有以下8个: mousedown: ...

  6. 事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流

    一.事件冒泡定义 事件冒泡是指在一个对象触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那 ...

  7. 鼠标滚轮事件及解决滚轮事件多次触发问题

    转载:https://www.cnblogs.com/jjxhp/p/11736066.html#_label0 一.滚轮事件的 js 写法 二.jQuery写法 三.参考 四.滚轮事件滚动过快,事件 ...

  8. html如何设置滑轮效果,HTML中鼠标滚轮事件onmousewheel处理

    滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件 ...

  9. javascript原生事件总结

    javascript原生的事件,总结了一下,包括事件流.处理函数.事件对象这几样东西.而在兼容性方面,主要是老牌ie8以及以下和现代浏览器的差异,也就是ie和DOM事件标准的差异. 事件流 这个事件流 ...

最新文章

  1. LeetCode 116. 填充每个节点的下一个右侧节点指针
  2. 孙立岩 python-basic: 用于学习python基础的课件(十一 十二)
  3. linux下面显示所有正在运行的线程
  4. Nginx-04:Nginx配置实例之反向代理1
  5. ShaderLab学习小结(十九)RenderToCubemap创建能反射周围环境的效果
  6. 【django】模板(templates)
  7. 电子邮箱里面的服务器,搭建电子邮件服务器
  8. storm消息可靠机制(ack)的原理和使用
  9. 利用networkx求解网络的重叠度
  10. sql t-sql_增强的PolyBase SQL 2019-使用t-SQL的外部表
  11. Android阅读手札:第一行代码(第一章)
  12. SoapUI接口测试之实战运用操作(五)
  13. LIO-SAM探秘第三章之代码解析(一) --- utility.h + imageProjection.cpp
  14. [面试备忘]数组(一维)最大子串总结
  15. httphandler防图片盗链
  16. 建立桌面文件管理格子_win10桌面分区,win10如何创建桌面格子
  17. 车联网登录显示连接不上服务器,车联网,如何解决连接的问题?
  18. iOS 应用内付费(IAP)开发步骤
  19. 【PostMan】测试Post请求
  20. 写一篇大数据背景下室内设计的论文

热门文章

  1. ConcurrentHashMap的扩容方法transfer源码详解
  2. 自动设置IP地址的BAT
  3. Java中产生随机数的两个方法
  4. ch454c语言程序实例,16段数码管驱动和键盘控制芯片CH454.PDF
  5. 火车头采集成功了,虽然是这么的牵强。
  6. 工序外协与委外加工区别
  7. 企业网盘应用,加速上海交大信息化校园建设
  8. asp网站微信登录源码
  9. ERP(企业资源管理计划)通过奇门对接WMS(仓库管理系统)
  10. Python Monte Carlo K-Means聚类实战研究