私はjqueryを初めて使用し、http://www.airbnb.com/jobs/のようにブラウザの特定の位置を下にスクロールした後、divを上にスクロールして上部を修正することを検討しています。
質問する
6641 次
4 に答える
5
次のデモを試す
これは、いくつかの値が変更された他の回答 ( Answer ) と同じです。ネイティブ 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'});
}
});
これをチェックしてくださいhttp://jsfiddle.net/68eXM/14/
于 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秒で-100ピクセルから0までのdiv全体をアニメーション化します
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 に答える