У меня есть что -то сегодня. Страница была изначально горизонтальной, поэтому внизу была горизонтальная полоса прокрутки, и не было никакого свитков вертикально. Теперь требуется, чтобы шкив мыши прокручивал влево и вправо, что требует написания кода JS для его реализации. Я столкнулся с большими проблемами в написании этого процесса.
Функции, поддерживаемые тремя браузерами IE Firefox Chrome, совершенно разные, это безумие.
Вот несколько знаний, чтобы объяснить
Мониторинг событий шкива
IE: OnmouseWheel
FIRFOX: Dommousescroll
Хром: мышиное колесо
Увы, безмолв
Возвратное значение прокрутки также отличается
FIRFOX возвращает +-3 с деталями
Другие используют Wheeldelta, чтобы вернуть +-120
Существует возвратное значение, чтобы определить направление прокрутки
В дополнение к левому движению хромированного суждения, Document.documentelement.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>Unt titled document</title></head> <body><div id="test"></div><script language="javascript"> var dbody = document.getElementbyId ('test'); // ff Использовать objaddevent (document, 'dommousscroll', function (e) {return mouse_scroll (e);}) // no ff hrome use objaddevent (документ, 'mousewheel', function (e) {return mouse_scroll (e); objaddevent (dbody, 'mousewheel', function (e) {return mouse_scroll (e);}) function mouse_scroll (e) {e = e || window.event; var deld = e.wheeldelta? e.wheeldelta: -e.detail*40; // Судить вверх и вниз по направлению var oep_s = deld> 0? -50: 50; document.documentelement.scrollleft+= move_s; // Использование этого для не-хрома браузеров // Используйте это для браузеров Chrome if (document.documentelement.scrollleft == 0) document.body.scrollleft+= move_s; вернуть false;} // Это функция, которая добавляет методы мониторинга к функции объекта objaddevent (oele, seventname, fnhandler) {if (oele.attachevent) oele.attachevent ('on'+sevenname, fnhandler); else oele.adeventlister ('on'+sevendname, fnhandler); ole.addeventlister (seventname, fnhandler, false);На самом деле, есть проблема с этим кодом. В хромированном браузере только мышь может скользить в этом сером цвете. Я не решил эту проблему. Если этот эксперт решает это, вы можете оставить сообщение, чтобы сказать мне, спасибо.