วันนี้ฉันมีบางอย่าง หน้าแรกเป็นแนวนอนดังนั้นจึงมีแถบเลื่อนแนวนอนที่ด้านล่างและไม่มีแถบเลื่อนในแนวตั้ง ตอนนี้จำเป็นต้องมีรอกเมาส์ควรเลื่อนไปทางซ้ายและขวาซึ่งต้องใช้การเขียนรหัส JS เพื่อใช้งาน ฉันพบปัญหามากมายในการเขียนกระบวนการนี้
ฟังก์ชั่นที่รองรับโดยเบราว์เซอร์ทั้งสามของ ie Firefox chrome นั้นแตกต่างกันอย่างสิ้นเชิงมันบ้ามาก
นี่คือจุดความรู้บางอย่างที่จะอธิบาย
ตรวจสอบเหตุการณ์รอก
เช่น: Onmousewheel
Firfox: Dommousescroll
Chrome: Mousewheel
อนิจจาพูดไม่ออก
ค่าส่งคืนแบบเลื่อนก็แตกต่างกัน
Firfox ส่งคืน +-3 พร้อมรายละเอียด
คนอื่นใช้ Wheeldelta เพื่อส่งคืน +-120
มีค่าส่งคืนเพื่อกำหนดทิศทางของการเลื่อน
นอกเหนือจากหน้าการตัดสินของโครเมี่ยมการเคลื่อนไหวด้านซ้ายแล้ว DocumentEnumentElement.Scrollleft ใช้สำหรับเบราว์เซอร์ทั่วไป
อย่างไรก็ตามเบราว์เซอร์ Chrome จำเป็นต้องใช้ document.body.scrollleft
ตกลงรหัสจะถูกแชร์ดังนี้:
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <title> dbody = document.getElementById ('test'); // ff ใช้ objaddevent (เอกสาร, 'dommousscroll', ฟังก์ชั่น (e) {return mouse_scroll (e);}) // ไม่มี ff Chrome ใช้ objaddevent (เอกสาร 'Mousewheel' objaddevent (dbody, 'mousewheel', ฟังก์ชั่น (e) {return mouse_scroll (e);}) ฟังก์ชั่น mouse_scroll (e) {e = e || window.event; var deld = e.wheeldelta? e.wheeldelta: -e.detail*40; // ตัดสินทิศทางขึ้นและลงทิศทาง var move_s = deld> 0? -50: 50; document.documentelement.scrollleft+= move_s; // ใช้สิ่งนี้สำหรับเบราว์เซอร์ที่ไม่ใช่ Chrome // ใช้สิ่งนี้สำหรับเบราว์เซอร์ Chrome ถ้า (document.documentelement.scrollleft == 0) document.body.scrollleft+= move_s; return false;} // นี่คือฟังก์ชั่นที่เพิ่มวิธีการตรวจสอบไปยังฟังก์ชันวัตถุ objaddevent (oele, seventname, fnhandler) {ถ้า (oele.attachevent) oele.attachevent ('on' seventname, fnhandler); </script> </body> </html>ในความเป็นจริงมีปัญหากับรหัสนี้ ในเบราว์เซอร์ Chrome มีเพียงเมาส์เท่านั้นที่สามารถเลื่อนสีเทานั้นได้ ฉันยังไม่ได้แก้ไขปัญหานี้ หากผู้เชี่ยวชาญนั้นแก้ปัญหาได้คุณสามารถฝากข้อความไว้เพื่อบอกฉันขอบคุณ