【发布时间】:2015-08-26 06:58:55
【问题描述】:
我有一个隐藏元素,当用户滚动一定数量的像素时会得到display: block;,并在用户到达页面的某个点时隐藏。这适用于台式电脑和笔记本电脑。但问题是平板电脑。我有 iPad 2 和三星 Galaxy Tab4。该固定元素导致两个平板电脑上的滚动变得迟缓。我制作了一个 JavaScript 函数,当你滚动时隐藏元素,当你不滚动时再次显示它。它有效,但确实很慢。当您开始滚动时,它会在您从屏幕上松开手指时隐藏元素。它只是不太好用。
代码如下:
function hideElementsOnScroll() {
var body = $("body");
if(body.hasClass("ipad") || body.hasClass("tablet-chrome")) {
$(window).scroll(function() {
var windowTop = $(window).scrollTop();
var offsetTop = $("#sd-tabs").offset().top;
if(windowTop >= offsetTop && $(".scroll-tabs").hasClass("stickyTabs")) {
$(window).scroll($.debounce( 0, true, function() {
$(".scroll-tabs").css("visibility", "hidden");
}));
$(window).scroll($.debounce( 100, function() {
$(".scroll-tabs").css("visibility", "visible");
}));
} else {
if(windowTop < offsetTop) {
$(".scroll-tabs").css("visibility", "hidden");
$(window).scroll($.debounce( 1, true, function() {
$(".scroll-tabs").css("visibility", "hidden");
}));
$(window).scroll($.debounce( 1, function() {
$(".scroll-tabs").css("visibility", "hidden");
}));
}
}
});
}
}
有这样的插件吗?还是我需要编辑我的函数?
【问题讨论】:
标签: javascript jquery html css performance