我希望我的元素仅在offset().top
大于300px
这是我的代码:
$(window).scroll(function() {
if ($(window).offset().top > 300) {
$(".uparrow").css('position','fixed');
}
else {
if ( $(window).offset().top < 300) {
$(".uparrow").css('display','none');
}
}
})
答案 0 :(得分:2)
您的浏览器控制台是您的朋友。这会马上告诉你什么是错的。在这种情况下,您可能会在控制台Uncaught TypeError: Cannot read property 'top' of undefined
中收到错误 - 这会导致您无法解决问题。
您需要$(window).scrollTop()
而不是$(window).offset().top
您也不需要第二个if语句。这包含在您之前的其他声明中
即
$(window).scroll(function()
{
if ( $(window).scrollTop() >= 300)
{
$(".uparrow").css('display','inline-block');
$(".uparrow").css('position','fixed'); // <- this is pretty pointless given you never change it when less than 300 pixels.
console.log('I am fixed');
}
else
{
$(".uparrow").css('display','none');
console.log('I am hidden');
}
})