บทความนี้จะแนะนำข้อมูลที่เกี่ยวข้องเกี่ยวกับการปิดใช้งานเหตุการณ์ล้อเลื่อนของเมาส์ใน JavaScript เป็นหลัก เพื่อนๆ ที่ต้องการความช่วยเหลือสามารถอ้างอิงถึงข้อมูลนี้ได้
โดยปกติแล้วเราจะปรับความเข้ากันได้ของ IE เวอร์ชันต่ำกว่าเมื่อพูดถึงสิ่งที่เข้ากันได้ แต่คราวนี้ไม่ใช่เพราะเบราว์เซอร์เวอร์ชันต่ำกว่านั้นไร้ความสามารถ นั่นเป็นเพราะว่า Firefox ก้าวไปไกลเกินไปและไม่สนใจประสบการณ์ของเบราว์เซอร์อื่นโดยสิ้นเชิง เบราว์เซอร์ทั้งหมดยกเว้น Firefox สามารถใช้เหตุการณ์ MouseWheel เพื่อจัดการการตอบสนองของล้อเมาส์ อย่างไรก็ตาม Firefox ไม่รองรับ MouseWheel และใช้ DOMMouseScroll ไร้สาระ ซึ่งเข้ากันไม่ได้กับเบราว์เซอร์อื่นยกเว้น Firefox กล่าวอีกนัยหนึ่ง สำหรับการจัดการเหตุการณ์ล้อเมาส์ Firefox สามารถใช้ได้เฉพาะ DOMMouseScroll เท่านั้น Non-Firefox สามารถใช้ได้เฉพาะ MouseWheel เท่านั้น หลักการของเหตุการณ์ทั้งสองนี้แตกต่างกัน และข้อมูลการประมวลผลก็แตกต่างกันเช่นกัน
- varfirefox=navigator.userAgent.indexOf('Firefox')!=-1;
- firefox?img.addEventListener('DOMMouseScroll',MouseWheel,false):
- (img.onmousewheel=ล้อเมาส์);
- functionMouseWheel(e){
- e=e||window.event;
- ถ้า(e.stopPropagation)e.stopPropagation();
- elsee.cancelBubble=true;
- ถ้า(e.preventDefault)e.preventDefault();
- elsee.returnValue=false;
- -
มาดูโค้ดแบบเต็มกันดีกว่า
- <!DOCTYPEhtml>
- <สไตล์>
- ช่วง{font:14px/20pxMicrosoft Yahei;}
- #เคาน์เตอร์{
- ความกว้าง:50px;ความสูง:20px;
- เส้นขอบ:1pxsolid#CCC;
- พื้นหลัง:#F9F9F9;
- แบบอักษร:14px/20pxConsolas;
- การจัดตำแหน่งข้อความ: กึ่งกลาง;
- ระยะขอบ:10px;
- -
- </สไตล์>
- <span>ใช้ล้อเลื่อนของเมาส์เพื่อปรับค่า</span><br/>
- <หาร=เคาน์เตอร์>0</div>
- <สคริปต์>
- //ตัดสินเบราว์เซอร์
- varisIE=navigator.userAgent.match(/MSIE(/d)/i);
- isIE=isIE?isIE[1]:ไม่ได้กำหนด;
- varisFF=/FireFox/i.test(navigator.userAgent);
- //รับองค์ประกอบ
- varcounter=document.getElementById(เคาน์เตอร์);
- //กิจกรรมล้อเมาส์
- if(isIE<9)//เบราว์เซอร์ดั้งเดิมใช้เหตุการณ์ MouseWheel
- counter.attachEvent (onmousewheel, ฟังก์ชั่น () {
- //คำนวณระยะทางที่ล้อเมาส์เลื่อน
- //หนึ่งตารางมี 3 เส้น แต่ละบรรทัดมี 40 พิกเซล ดังนั้นหารด้วย 120
- varv=event.wheelDelta/120;
- counter.innerHTML=counter.innerHTML*1+v;
- //บล็อกวิธีการเริ่มต้นของเบราว์เซอร์
- กลับเท็จ;
- -
- elseif(!isFF)//เบราว์เซอร์สมัยใหม่ยกเว้น Firefox ก็ใช้เหตุการณ์ MouseWheel เช่นกัน
- counter.addEventListener (ล้อเมาส์, ฟังก์ชั่น (e) {
- //คำนวณระยะทางที่ล้อเมาส์เลื่อน
- varv=e.wheelDelta/120;
- counter.innerHTML=counter.innerHTML*1+v;
- //บล็อกวิธีการเริ่มต้นของเบราว์เซอร์
- e.preventDefault();
- },เท็จ);
- else//Firefox ตัวประหลาดใช้เหตุการณ์ DOMMouseScroll
- counter.addEventListener(DOMMouseScroll,ฟังก์ชัน(e){
- //คำนวณระยะทางที่ล้อเมาส์เลื่อน
- //หนึ่งตารางมี 3 เส้น แต่โปรดทราบว่าความแตกต่างจากพิกเซลคือเป็นค่าลบ
- varv=-e.detail/3;
- counter.innerHTML=counter.innerHTML*1+v;
- //บล็อกวิธีการเริ่มต้นของเบราว์เซอร์
- e.preventDefault();
- },เท็จ);
- </สคริปต์>
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าทุกคนจะชอบมัน