热门标签 | 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 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 本文详细探讨了使用Python3编写爬虫时如何应对网站的反爬虫机制,通过实例讲解了如何模拟浏览器访问,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 提升Android开发效率:Clean Code的最佳实践与应用
    在Android开发中,提高代码质量和开发效率是至关重要的。本文介绍了如何通过Clean Code的最佳实践来优化Android应用的开发流程。以SQLite数据库操作为例,详细探讨了如何编写高效、可维护的SQL查询语句,并将其结果封装为Java对象。通过遵循这些最佳实践,开发者可以显著提升代码的可读性和可维护性,从而加快开发速度并减少错误。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
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社区 版权所有