ÐолÑÑико мÑÑи иÑполÑзÑеÑÑÑ Ñедко. Ðно еÑÑÑ Ð´Ð°Ð¶Ðµ не Ñ Ð²ÑÐµÑ Ð¼ÑÑей. ÐоÑÑÐ¾Ð¼Ñ ÑÑÑеÑÑвÑÑÑ Ð¿Ð¾Ð»ÑзоваÑели, коÑоÑÑе в пÑинÑипе не могÑÑ ÑгенеÑиÑоваÑÑ Ñакое ÑобÑÑие.
â¦Ðо, Ñем не менее, его иÑполÑзование Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð¿Ñавдано. ÐапÑимеÑ, можно добавиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑдобÑÑва Ð´Ð»Ñ ÑÐµÑ , Ñ ÐºÐ¾Ð³Ð¾ колÑÑико еÑÑÑ.
ÐÑлиÑÐ¸Ñ ÐºÐ¾Ð»ÑÑика Ð¾Ñ Ð¿ÑокÑÑÑки
ÐеÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо колÑÑико мÑÑи обÑÑно аÑÑоÑииÑÑеÑÑÑ Ñ Ð¿ÑокÑÑÑкой, ÑÑо ÑовÑем ÑазнÑе веÑи.
- ÐÑи пÑокÑÑÑке ÑÑабаÑÑÐ²Ð°ÐµÑ ÑобÑÑие onscroll â ÑаÑÑмоÑÑим его в далÑнейÑем. Ðно пÑоизойдÑÑ Ð¿Ñи лÑбой пÑокÑÑÑке, в Ñом ÑиÑле ÑеÑез клавиаÑÑÑÑ, но ÑолÑко на пÑокÑÑÑиваемÑÑ
ÑлеменÑаÑ
. ÐапÑимеÑ, ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñ
overflow:hiddenв пÑинÑипе не Ð¼Ð¾Ð¶ÐµÑ ÑгенеÑиÑоваÑÑonscroll. - Ð ÑобÑÑие
wheelÑвлÑеÑÑÑ ÑиÑÑо «мÑÑинÑм». Ðно генеÑиÑÑеÑÑÑ Ð½Ð°Ð´ лÑбÑм ÑлеменÑом пÑи пеÑедвижении колеÑа мÑÑи. ÐÑи ÑÑом не важно, пÑокÑÑÑиваемÑй он или неÑ. Ð ÑаÑÑноÑÑи,overflow:hiddenникак не пÑепÑÑÑÑвÑÐµÑ Ð¾Ð±ÑабоÑке колеÑа мÑÑи.
ÐÑоме Ñого, ÑобÑÑие onscroll пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ñле пÑокÑÑÑки, а onwheel â до пÑокÑÑÑки, поÑÑÐ¾Ð¼Ñ Ð² нÑм можно оÑмениÑÑ ÑÐ°Ð¼Ñ Ð¿ÑокÑÑÑÐºÑ (дейÑÑвие бÑаÑзеÑа).
ÐоопаÑк wheel в ÑазнÑÑ Ð±ÑаÑзеÑаÑ
СобÑÑие wheel поÑвилоÑÑ Ð² ÑÑандаÑÑе не Ñак давно. Ðно поддеÑживаеÑÑÑ Chrome 31+, IE9+, Firefox 17+.
Ðо него бÑаÑзеÑÑ Ð¾Ð±ÑабаÑÑвали пÑокÑÑÑÐºÑ Ð¿Ñи помоÑи ÑобÑÑий mousewheel (вÑе кÑоме Firefox) и DOMMouseScroll, MozMousePixelScroll (ÑолÑко Firefox).
СамÑе важнÑе ÑвойÑÑва ÑовÑеменного ÑобÑÑÐ¸Ñ Ð¸ его неÑÑандаÑÑнÑÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¾Ð²:
wheel- СвойÑÑво
deltaYâ колиÑеÑÑво пÑокÑÑÑеннÑÑ Ð¿Ð¸ÐºÑелей по веÑÑикали. СÑÑеÑÑвÑÑÑ Ñакже ÑвойÑÑваdeltaXиdeltaZÐ´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ð½Ð°Ð¿Ñавлений пÑокÑÑÑки. MozMousePixelScroll- СÑабаÑÑваеÑ, наÑÐ¸Ð½Ð°Ñ Ñ Firefox 3.5, ÑолÑко в Firefox. ÐаÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¾ÑмениÑÑ Ð¿ÑокÑÑÑÐºÑ Ð¸ полÑÑиÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² пикÑелÑÑ
ÑеÑез ÑвойÑÑво
detail, оÑÑ Ð¿ÑокÑÑÑки в ÑвойÑÑвеaxis. mousewheel- СÑабаÑÑÐ²Ð°ÐµÑ Ð² бÑаÑзеÑаÑ
, коÑоÑÑе еÑÑ Ð½Ðµ Ñеализовали
wheel. Ð ÑвойÑÑвеwheelDeltaâ ÑÑловнÑй «ÑÐ°Ð·Ð¼ÐµÑ Ð¿ÑокÑÑÑки», обÑÑно Ñавен120Ð´Ð»Ñ Ð¿ÑокÑÑÑки ввеÑÑ Ð¸-120â вниз. Ðн не ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ°ÐºÐ¾Ð¼Ñ-либо конкÑеÑÐ½Ð¾Ð¼Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑÐ²Ñ Ð¿Ð¸ÐºÑелей.
ЧÑÐ¾Ð±Ñ ÐºÑоÑÑ-бÑаÑзеÑно оÑловиÑÑ Ð¿ÑокÑÑÑÐºÑ Ð¸, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи, оÑмениÑÑ ÐµÑ, можно иÑполÑзоваÑÑ Ð²Ñе ÑÑи ÑобÑÑиÑ.
ÐÑимеÑ, вклÑÑаÑÑий поддеÑÐ¶ÐºÑ IE8-:
if (elem.addEventListener) {
if ('onwheel' in document) {
// IE9+, FF17+, Ch31+
elem.addEventListener("wheel", onWheel);
} else if ('onmousewheel' in document) {
// ÑÑÑаÑевÑий ваÑÐ¸Ð°Ð½Ñ ÑобÑÑиÑ
elem.addEventListener("mousewheel", onWheel);
} else {
// Firefox < 17
elem.addEventListener("MozMousePixelScroll", onWheel);
}
} else { // IE8-
elem.attachEvent("onmousewheel", onWheel);
}
function onWheel(e) {
e = e || window.event;
// wheelDelta не даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑзнаÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво пикÑелей
var delta = e.deltaY || e.detail || e.wheelDelta;
var info = document.getElementById('delta');
info.innerHTML = +info.innerHTML + delta;
e.preventDefault ? e.preventDefault() : (e.returnValue = false);
}
РдейÑÑвии:
РбÑаÑзеÑе IE8 (ÑолÑко веÑÑÐ¸Ñ 8) еÑÑÑ Ð¾Ñибка. ÐÑи налиÑии обÑабоÑÑика mousewheel â ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ ÑкÑоллиÑÑÑ. ÐнаÑе говоÑÑ, дейÑÑвие бÑаÑзеÑа оÑменÑеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.
ÐÑо, конеÑно, не Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°ÑениÑ, еÑли ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² пÑинÑипе не пÑокÑÑÑиваемÑй.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)