我是 jquery 的新手,并希望在我向下滚动浏览器中的特定位置后向上滚动并修复顶部,就像http://www.airbnb.com/jobs/
问问题
6641 次
4 回答
5
试试下面的DEMO
这与我的其他答案(答案)相同,只是更改了一些值。原生 JS 解决方案。
代码是:
JS:
window.onscroll=function () {
var top = window.pageXOffset ? window.pageXOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
var head = document.getElementById("header")
if(top > 550){
head.style.position = "fixed";
head.style.height="50px"
head.style.top="0px"
}
else {
if(head.getAttribute("style"))
head.removeAttribute("style")
}
}
HTML:
<div class="container">
<div id="header" class="header">
Hello World
</div>
</div>
CSS:
.container{
height:2000px;
width:100%;
background-color:yellow;
}
.header{
text-align:center;
background-color:red;
height:100px;
position:relative;
min-height:50px;
width:100%;
top:500px;
}
</p>
希望能帮助到你
于 2012-07-24T09:26:36.277 回答
4
像这样写:
$(window).scroll(function () {
var height = $('body').height();
var scrollTop = $(window).scrollTop();
if(scrollTop>500){
$('#header').css({ 'position': 'fixed', 'top' : '0' });
}
else{
$('#header').css({ 'position': 'relative', 'top': '500px'});
}
});
于 2012-07-24T10:04:14.607 回答
2
小提琴演示:http: //jsfiddle.net/collabcoders/PZp8R/3/
扩展它以包含 jquery 动画,您将需要包含 jquery、jquery.effects.core.min.js、jquery.effects.slide.min.js 和 jquery.effects.transfer.min.js 文件。
在您的 CSS 中,您需要将 div 的上边距设置为负数,这将是动画的起点。
CSS
.tophead {
width:100%;
height: 100px;
color:#fff;
background-color:#111;
}
.container {
height:2000px;
width:100%;
margin-top:-100px;
}
.header{
text-align:center;
background-color:#000;
height:100px;
position:relative;
min-height:100px;
width:100%;
top:500px;
color: #fff;
}
在您的 javascript 中,这将在 3 秒内将整个 div 从 -100 px 变为 0
Javascript
$(document).ready(function () {
$(".container").animate({
marginTop: "0"
},2000);
});
$(window).scroll(function () {
var height = $('body').height();
var scrollTop = $(window).scrollTop();
if(scrollTop>500){
$('#header').css({ 'position': 'fixed', 'top' : '0' });
} else {
$('#header').css({ 'position': 'relative', 'top': '500px'});
}
});
HTML
<div class="container">
<div id="tophead" class="tophead">
Sliding Down Container
</div>
<div id="header" class="header">
Hello World
</div>
</div>
于 2012-07-24T09:44:52.743 回答
0
这很简单..就像这个例子:
$(window).scroll(function () {
var height = $('body').height();
var scrollTop = $(window).scrollTop();
if(scrollTop>100){
$('#header').css({ 'position': 'fixed', 'top' : '0', 'opacity': '0.7'});
} else {
$('#header').css({ 'position': 'relative', 'top': '100px', 'opacity': '1'});
}
});
于 2014-05-07T08:33:57.647 回答