Home php教程 PHP开发 How to handle the mouse wheel event onmousewheel in html

How to handle the mouse wheel event onmousewheel in html

Dec 07, 2016 am 10:44 AM
html

The scroll wheel event is slightly different in different browsers. One such as Firefox uses DOMMouseScroll. ff can also use the addEventListener method to bind the DomMouseScroll event. Other browser wheel events use mousewheel. Let me introduce it to you in detail.

Firefox uses DOMMouseScroll, other browsers use mousewheel. When a scroll event is triggered, Firefox uses the detail attribute to capture the wheel information, and other browsers use wheelDelta. I don’t know why other manufacturers are so consistent with Microsoft on this issue. Firefox can use the addEventListener method to bind the DomMouseScroll event.

elem.addEventListener('DOMMouseScroll', func, false); IE and other mainstream browsers can use the traditional event binding model. But don't use IE's proprietary attachEvent method. Other mainstream browsers do not recognize Microsoft's method.

Firefox mouse wheel scrolling up is -3, scrolling down is 3

IE mouse wheel scrolling up is 120, scrolling down is -120

Safari mouse wheel scrolling up is 360, scrolling down is -360

Opera's mouse wheel scrolls up to 120 and scrolls down to -120

Chrome's mouse wheel scrolls up to 120 and scrolls down to -120

Someone did some testing under Safari: "If you just scroll a circle, the value is +-0.1, if you scroll a little faster (scroll a few more times), this value will become larger. This is because there is a mouse wheel acceleration function under Mac OS. When you scroll once, the browser scrolls 1 pixel and scrolls 3 times. The browser scrolls 30 pixels." At the same time, he also conducted research on Camino (a kernel engine based on Gecko): "Similar to Safari (+- 0.3 to +-Infinity), although it uses the same kernel engine as firefox, the delta value is only +-2.666666 Float, no matter what the scrolling speed is

After my test, IE/Opera are of the same type. Use attachEvent to add the wheel event

/*IE注册事件*/ 
if(document.attachEvent){ 
  document.attachEvent('onmousewheel',scrollFunc); 
}
Copy after login

Firefox uses addEventListener to add the wheel event

/*Firefox注册事件*/ 
if(document.addEventListener){ 
  document.addEventListener('DOMMouseScroll',scrollFunc,false); 
}
Copy after login

Safari and Chrome are of the same type, and you can use HTML DOM to add events

window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome

Except Firefox, all of them can use HTML DOM to add events. Therefore, when adding events, use the following method

/*注册事件*/ 
if(document.addEventListener){ 
  document.addEventListener('DOMMouseScroll',scrollFunc,false); 
}//W3C 
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome
Copy after login

detail and wheelDelta

Judge whether the wheel is up or down. Compatibility must also be considered in the browser. Now in the five major browsers (IE, Opera, Safari, Firefox, Chrome) Firefox uses detail, and the other four categories use wheelDelta; the two are only inconsistent in their values, which means they have the same meaning. detail and wheelDelta only take two values ​​each, detail only takes ±3, and wheelDelta only takes ±120, where positive numbers are expressed as Up, negative numbers mean down

<p style="border-width:0px; padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:8px; list-style:none; text-indent:2em"><label for="wheelDelta"> 滚动值:</label>(IE/Opera)<input type="text" id="wheelDelta" style="border-width:0px; padding-top:0px; padding-bottom:0px; margin:0px; list-style:none"></p>
<p style="border-width:0px; padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:8px; list-style:none; text-indent:2em"><label for="detail"> 滚动值:(Firefox)</label><input type="text" id="detail" style="border-width:0px; padding-top:0px; padding-bottom:0px; margin:0px; list-style:none"></p>
<script type="text/javascript">
  var oTxt = document.getElementById("txt");
  var scrollFunc = function (e) {
    var direct = 0;
    ee = e || window.event;
  
    var t1 = document.getElementById("wheelDelta");
    var t2 = document.getElementById("detail");
    if (e.wheelDelta) {//IE/Opera/Chrome 
      t1.value = e.wheelDelta;
    } else if (e.detail) {//Firefox 
      t2.value = e.detail;
    }
    ScrollText(direct);
  }
  /*注册事件*/
  if (document.addEventListener) {
    document.addEventListener(&#39;DOMMouseScroll&#39;, scrollFunc, false);
  }//W3C 
  window.onmousewheel = document.onmousewheel = scrollFunc; //IE/Opera/Chrome/Safari 
<p></script></p>
Copy after login


.
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1662
14
PHP Tutorial
1261
29
C# Tutorial
1234
24
Table Border in HTML Table Border in HTML Sep 04, 2024 pm 04:49 PM

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

Nested Table in HTML Nested Table in HTML Sep 04, 2024 pm 04:49 PM

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

HTML margin-left HTML margin-left Sep 04, 2024 pm 04:48 PM

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

HTML Table Layout HTML Table Layout Sep 04, 2024 pm 04:54 PM

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

HTML Input Placeholder HTML Input Placeholder Sep 04, 2024 pm 04:54 PM

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

HTML Ordered List HTML Ordered List Sep 04, 2024 pm 04:43 PM

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

HTML onclick Button HTML onclick Button Sep 04, 2024 pm 04:49 PM

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.

See all articles