热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在HTML5页面中使用鼠标滚轮事件

支持鼠标滚轮可以为HTML5网页增加更多的交互性。除了滚动页面,您还可以执行其他操作,例如放大或缩小。查看鼠标滚轮演示页面…大多数浏览器支持任何元素的“

支持鼠标滚轮可以为HTML5网页增加更多的交互性。 除了滚动页面,您还可以执行其他操作,例如放大或缩小。

查看鼠标滚轮演示页面…

大多数浏览器支持任何元素的“ mousewheel”事件。 您可以注册传递事件对象的处理函数。 这暴露了wheelDelta属性; 向上滚动为正值或向下滚动为负值。 值越大或越小,移动越大。

不幸的是,有一个浏览器不支持“ mousewheel”事件。 您错了: 是Firefox 。 Mozilla已实现“ DOMMouseScroll”事件。 这将传递具有detail属性的事件对象,但是与wheelDelta不同,它返回用于向下滚动的正值。 因此,直到Mozilla采纳该活动,我们才有一个奇怪的情况,那就是为IE6编写代码实际上要容易一些! 那不是你每天听到的话。

您还应该注意,Apple在Safari中禁用了滚轮,但是Webkit引擎提供了支持,因此您的代码不会引起任何问题。

添加鼠标滚轮事件处理程序

让我们向网页添加一个图像,该图像将根据鼠标滚轮进行放大和缩小:



现在,我们可以附加mousewheel事件处理程序:


var myimage = document.getElementById("myimage");
if (myimage.addEventListener) {// IE9, Chrome, Safari, Operamyimage.addEventListener("mousewheel", MouseWheelHandler, false);// Firefoxmyimage.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
}
// IE 6/7/8
else myimage.attachEvent("onmousewheel", MouseWheelHandler);

跨浏览器鼠标滚轮事件处理功能

现在,我们的MouseWheelHandler可以确定滚轮运动增量。 在这种情况下,我们将反转Firefox的detail值,并返回1(向上)或-1(向下):


function MouseWheelHandler(e) {// cross-browser wheel deltavar e = window.event || e; // old IE supportvar delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));

现在我们可以相应地调整图像的大小。 下面的代码将宽度设置为50像素到800像素之间,但是您可以确定图像的自然尺寸并使用它。

myimage.style.width = Math.max(50, Math.min(800, myimage.width + (30 * delta))) + "px";return false;
}

最后,我们返回false来取消通常会滚动页面的标准事件。

查看鼠标滚轮演示页面…

该代码可在包括IE6、7和8在内的所有浏览器中使用,但Safari用户将看不到任何情况。

如果您喜欢阅读这篇文章,那么您会喜欢Learnable的 ; 向大师学习新鲜技能的地方。 会员可以立即访问所有SitePoint的电子书和交互式在线课程,例如针对真实世界的HTML5和CSS3 。

本文的评论已关闭。 对HTML有疑问吗? 为什么不在我们的论坛上提问呢?

From: https://www.sitepoint.com/html5-Javascript-mouse-wheel/



推荐阅读
  • DOM事件大全
    1.事件:js与html的交互就是通过事件的,观察者模式2.事件流:从页面中接收事件的顺序IE::事件冒泡流,事件冒泡,事件从最具体的元素接收,然后逐级向上传播,主流浏览器都支持N ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Tkinter Frame容器grid布局并使用Scrollbar滚动原理
    本文介绍了如何使用Tkinter实现Frame容器的grid布局,并通过Scrollbar实现滚动效果。通过将Canvas作为父容器,使用滚动Canvas来滚动Frame,实现了在Frame中添加多个按钮,并通过Scrollbar进行滚动。同时,还介绍了更新Frame大小和绑定滚动按钮的方法,以及配置Scrollbar的相关参数。 ... [详细]
  • python+selenium十:基于原生selenium的二次封装fromseleniumimportwebdriverfromselenium.webdriv ... [详细]
  • CSS|网格-行-结束属性原文:https://www.gee ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • <!DOCTYPEhtml><html><head><metacharsetUTF-8><meta ... [详细]
  • JavaWeb介绍概念JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有javaapplet,不过使 ... [详细]
author-avatar
gbn3312168
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有