0

Я искал высоко и низко для ответа на этот вопрос, и я НАКОНЕЦ нашел его. Я пишу это, надеюсь, сэкономить будущему программисту много времени и разочарований.Кросс-браузер: Обнаружение положения прокрутки только для JS

Просьба прокомментировать ниже, если вы хотите увидеть что-то добавленное или задать вопросы, и я добавлю его. Это станет более полным ответом, поскольку люди вызывают проблемы.

+6

Если вы действительно думаете, что это может помочь кому угодно и по этой причине вы его написали, тогда вы должны вставить это решение в качестве ответа, а не на вопрос –

+1

Ваше сердце в нужном месте :) - это только ваше решение это не ... – LcSalazar

+1

Кроме того, вам нужно будет пометить его принятым, чтобы получить (ответный) эффект ... –

ответ

7

Это решение для поиска/обнаружения положения полосы прокрутки в трех основных браузерах (IE, Chrome, Firefox). Дайте мне знать, если вы найдете версию этих браузеров, которая не будет работать, и я отредактирую этот ответ, чтобы включить эту информацию.

var scrollTop = document.body.scrollTop; //Chrome 
var scrollLeft = document.body.scrollLeft; //Chrome 
var otherScrollTop = document.documentElement.scrollTop; //IE & Firefox 
var otherScrollLeft = document.documentElement.scrollLeft; //IE & Firefox 

Эти переменные будут определять положение прокрутки для всей страницы.

+0

Я поддержал это, а затем закончил использование jquery, как в [этом ответе] (http://stackoverflow.com/questions/7392058/more-efficient-way-to-handle-window-scroll-functions-in-jquery/ 7392655 # 7392655). Если кто-то еще столкнется с этой проблемой, это может быть вариант – Jess

+1

JQuery определенно упрощает. В то время я был в положении, когда мне нужно было только решение JavaScript. Спасибо за голосование! – Goahnary

+1

@Goahnary, отличный ответ. Я согласен, что это лучшее решение сегодня. Всего две мелочи, которые нужно добавить: (1) Я думаю, вы можете сделать это еще более кратким в одной строке: 'var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; '. (2) Я думаю, что это будет работать на IE9 +, может быть, не очень важно, но я думаю, стоит упомянуть :) –