【发布时间】:2014-08-20 13:44:43
【问题描述】:
我希望我的网站标题:
i.) 当用户的滚动位置在顶部时(假设:在顶部 300 像素,或者理想情况下直到滚动没有到达下一个元素),保持固定在顶部
我已经使用以下代码进行了此操作,但是当我在我的 ipad 上测试它时,它非常慢,标题在做出反应之前有几秒钟的延迟。 是否有更好的做法,也许是更有效的方法来实现这种效果?
<div class="header">
</div>
<div class="scrollarea1">
</div>
<div class="scrollarea2">
</div>
.header {
background: #282828;
position: fixed;
height: 100px;
width: 100%;
}
.scrollarea1 {
background: #EFEFEF;
height: 300px;
width: 100%;
}
.scrollarea2 {
background: #C0C0C0;
height: 1700px;
width: 100%;
}
$(document).ready(function () {
var elementStyle=document.getElementsByClassName("header").item(0).style;
$(window).scroll(function(){
if( $(window).scrollTop() >= 300 ) {
elementStyle.position = "absolute";
elementStyle.marginTop = "300px";
} else {
elementStyle.position = "fixed";
elementStyle.marginTop = "0px";
}
});
});
JsFiddle 链接:http://jsfiddle.net/79ugd4x9/15/
【问题讨论】:
-
不要使用 iPad :p
-
或者不要使用网站只是在纸上打印东西..你也有一个可行的解决方案吗???
-
您是否在其他手持设备上测试过它?它可能特定于 iOS 设备上的 Safari。这里没有足够的信息来提供帮助。
-
这有助于我在 DOM 繁忙时在所有设备上实现更好的滚动性能:imakewebthings.com/jquery-waypoints
标签: jquery css header web vertical-scrolling