- window.scrollX: current window horizontal offset number
- window.scrollY: current window vertical offset number, For cross-browser compatibility, use
window.pageYOffset
instead ofwindow.scrollY
- window.pageYOffset: an alias for the
scrollY
property, but older versions of Internet Explorer (< 9) do not support either property and must be worked around by checking other non-standard properties, see: fully compatible example - window.scroll(x, y): absolute scroll
- window.scrollTo(x, y): absolute scroll, effectively the same as widow.scroll(x, y)
- window.scrollBy(x, y): relative scroll
- window.scrollMaxX: the maximum number of pixels that the document can be scrolled horizontally
- window.scrollMaxY: the maximum number of pixels that the document can be scrolled vertically
- element.scrollIntoView(alignWithTop): scrolls elements into view
- HTMLElement.offsetTop: returns the distance of the current element relative to the top of the offsetParent node
- jQuery’s offset(): returns an object that includes the top and left offset of the element, e.g. Object{top: 223, left: 312.5}
- jQuery’s offsetParent(): Get the closest ancestor element that is positioned
- jQuery’s scrollTop(): wraps things up, but it’s the same thing. Also, it could be called to scroll compared to an element. See code below
Category Archives: JavaScript
Notes on Improving Performance
List of things to probe around and think about:
Cannot read property ‘replace’ of undefined in jQuery
Most of the time, it’s just trying to use a jQuery selector that hadn’t selected anything.
Benefit for Using Canvas Instead of Image Tags
The main benefit is to avoid unnecessary browser decode.
requestAnimationFrame and “this”
How to call requestAnimationFrame with a this
:
Continue reading
$(this) and event.target
$(this)
and event.target
in on events binding: what’s the difference?
How to Read Code Beyond One’s Comprehension
A colleague of mine asked me yesterday: what’s the difference between good code and bad ones? I gave my answer without a blink: “Reusability.” The answer struck me. I didn’t realise that before I said it out loud.
One good way to improve reusability, is to consciously refine one’s code with an eye for patterns. Repetitions are worth summing up–it’s just pure fun.