Skip to content

Instantly share code, notes, and snippets.

@desigens
Created January 10, 2014 06:50
Show Gist options
  • Save desigens/8347917 to your computer and use it in GitHub Desktop.
Save desigens/8347917 to your computer and use it in GitHub Desktop.
Sticky
// Sticky
(function (el, topOffset) {
var $el = $(el).eq(0),
width = $el.outerWidth(),
coords = $el.offset(),
isSticky = false;
topOffset = topOffset || 0;
function relative() {
$el.attr('style', '');
isSticky = false;
}
function sticky() {
$el.css({
position: 'fixed',
top: topOffset,
left: coords.left,
width: width
});
isSticky = true;
}
function reset() {
width = $el.outerWidth();
coords = $el.offset();
}
function defineSticky() {
var pageYOffset = window.pageYOffset;
if ((pageYOffset > coords.top - topOffset) && !isSticky) {
sticky();
} else if ((pageYOffset < coords.top - topOffset) && isSticky) {
relative();
}
}
function resizeHandler() {
relative();
reset();
defineSticky();
}
$(window).on('scroll', defineSticky);
$(window).on('resize', resizeHandler);
}($('.b-payment-form__info'), 20));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment