脚本结束后,Div不会重新加载到原始位置
Div doesn't reload to original place after script
我有一个div,当你滚动到顶部并越过它时,它粘在顶部但是当你滚动到顶部时,它不会返回到原来的位置。
https://jsfiddle.net/5ADzD/754/embedded/result/function fixDiv() {
var $div = $("#navwrap");
if ($(window).scrollTop() > $div.data("top")) {
$('#navwrap').css({'position': 'fixed', 'top': '0', 'width': '100%'});
}
else {
$('#navwrap').css({'position': 'absolute'});
}
}
$("#navwrap").data("top", $("#navwrap").offset().top); // set original position on load
$(window).scroll(fixDiv);
你没有把顶部设置回它应该在的位置。
试试这个:
function fixDiv() {
var $div = $("#navwrap");
var top = $div.data("top");
if ($(window).scrollTop() > top) {
$('#navwrap').css({'position': 'fixed', 'top': '0', 'width': '100%'});
}
else {
$('#navwrap').css({'position': 'absolute', 'top' : top + 'px'}); //set back to absolute and position the top
}
}
$("#navwrap").data("top", $("#navwrap").offset().top); // set original position on load
$(window).scroll(fixDiv);
#container {
padding: 100px 0 2500px;
}
#navwrap{
position:absolute;
width: 100%;
height: 50px;
background-color: #C00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container">
<div id="navwrap">NAV WRAP</div>
</div>
更新小提琴:https://jsfiddle.net/5ADzD/755/1
在else
块中,使用位置relative
或static
。这样,它就会返回到原来的布局位置。
这是因为absolute
非常像fixed
,其中元素从布局中取出。不同之处在于fixed
保持在原位,absolute
紧随其后(相对于下一个定位的祖先)。
相关文章:
- 加载页面时更改html页面的位置
- 点击href在谷歌地图中加载位置
- 如何在浏览器重新加载时保存位置哈希状态
- 防止用户在jQuery Mobile中ajax加载页面时单击其他位置
- 事件在加载之前时的未定义位置
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 谷歌地图自动加载标记位置中的隐藏位置
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 窗口位置href更改不会重新加载
- 通过位置栏更改查询字符串,AJAX加载的菜单不会't在没有硬刷新的情况下重新填充
- 如何在网页加载asp.net上显示文本框中第二个字母的光标位置
- 页面重新加载后滚动到特定位置
- 在存储位置加载页面
- 将图像加载到localStorage,并将图像src设置到该位置
- javascript设置第一次加载页面时ipad的绝对位置
- 试图从错误位置加载资源的Rails
- Rails:Jquery/Javascript无法从正确的资产位置加载
- JavaScript页面加载位置
- 为什么使用文档时页面会重新加载.位置在内容脚本的chrome扩展
- WebView不再对文档重新加载.位置的改变