window.scroll=function MyFunc(){
var y = window.scrollTop();
alert(y);
}
Asked
Active
Viewed 4,616 times
1

Unmitigated
- 76,500
- 11
- 62
- 80

nirbhay
- 33
- 1
- 5
-
2 things you'd like to take into consideration: #1) Is to use requestAnimationFrame (as the window.scroll makes the browser janky while scrolling). #2) Check out IntersectionObserver and a possible polyfill if you want to fire an animation based on an element's display on the viewport. – Jose A Aug 20 '18 at 14:36
2 Answers
4
You can use window.onscroll
without the use of jQuery
. That was what you were missing on your code. It should be window.onscroll
and to get the vertical scroll pixels use window.scrollY
window.onscroll = function (e) {
console.log(window.scrollY);
};
html, body{
height: 2000px;
}

Ankit Agarwal
- 30,378
- 5
- 37
- 62
2
You need to wrap the window
object in $()
to use the scrollTop()
function on it.
$(window).scroll(function MyFunc(e){
var y = $(window).scrollTop();
console.log(y);
});
html, body{
height: 2000px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
In Javascript, you can add an event listener for the scroll event on the window and use window.pageYOffset
(for better cross-browser compatability) to get the amount of pixels scrolled vertically.
window.addEventListener("scroll", function MyFunc(e){
var y = (window.pageYOffset !== undefined)
? window.pageYOffset
: (document.documentElement || document.body.parentNode || document.body).scrollTop;//for cross-browser compatability
console.log(y);
});
html, body{
height: 2000px;
}

Unmitigated
- 76,500
- 11
- 62
- 80