滚动到顶部时 ScrollTop 不会返回
ScrollTop not reverting back when scroll to top
Scrolltop 有问题 - 向下滚动时可以平滑地改变,但向上滚动时不会恢复到原来的状态 css。
我试过调换顺序,但没有任何效果。谁能告诉我我的代码哪里错了?
谢谢
$(function() {
var topblock = $(".topblockfix");
var header = $(".header");
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if ($(window).scrollTop() > $('.topblockfix').offset().top) {
if (scroll >= 250) {
topblock.removeClass("topblockfix").addClass("topblockfix-alt");
header.removeClass("header").addClass("header-alt");
} else {
topblock.removeClass("topblockfix-alt").addClass("topblockfix");
header.removeClass("header-alt").addClass("header");
}
}
});
});
您在第一个 if 语句中存在逻辑错误。
您正在检查 $('.topblockfix') 的顶部偏移量。但是您删除了 class .topblockfix 并将其设置为 .topblockfix-alt.
因此您需要更新您的 if 语句:
if ($(window).scrollTop() > $('.topblockfix').offset().top || $(window).scrollTop() > $('.topblockfix-alt').offset().top) {
或者你必须在某处缓存 $('.topblockfix').offset().top 的值
Scrolltop 有问题 - 向下滚动时可以平滑地改变,但向上滚动时不会恢复到原来的状态 css。
我试过调换顺序,但没有任何效果。谁能告诉我我的代码哪里错了?
谢谢
$(function() {
var topblock = $(".topblockfix");
var header = $(".header");
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if ($(window).scrollTop() > $('.topblockfix').offset().top) {
if (scroll >= 250) {
topblock.removeClass("topblockfix").addClass("topblockfix-alt");
header.removeClass("header").addClass("header-alt");
} else {
topblock.removeClass("topblockfix-alt").addClass("topblockfix");
header.removeClass("header-alt").addClass("header");
}
}
});
});
您在第一个 if 语句中存在逻辑错误。
您正在检查 $('.topblockfix') 的顶部偏移量。但是您删除了 class .topblockfix 并将其设置为 .topblockfix-alt.
因此您需要更新您的 if 语句:
if ($(window).scrollTop() > $('.topblockfix').offset().top || $(window).scrollTop() > $('.topblockfix-alt').offset().top) {
或者你必须在某处缓存 $('.topblockfix').offset().top 的值