[英]Smooth scrolling with sticky div
我想創建一個像本例一樣平滑的粘性div: http ://www.nytimes.com/interactive/2010/11/13/weekinreview/deficits-graphic.html?src=tp&_r =0
現在,我的例子一點都不順利,但確實令人震驚。 我有這個JS代碼:
$(window).scroll(function () {
var scroll_top = $(this).scrollTop();
if (scroll_top > 66) {//height of header
$('.wrapper').addClass('sticky');
} else {
$('.wrapper').removeClass('sticky');
}
});
和HTML:
<div class="wrapper">
<h4>Ausgaben in Millionen Franken</h4>
<div class="background">
<div id="kunstmuseum"></div><div id="historisch"></div><div id="naturhist"></div><div id="kulturen"></div><div id="antik"></div><div id="beyeler"></div><div id="weitereMuseen"></div><div id="theaterBasel"></div><div id="kaserne"></div><div id="weitereTheater"></div><div id="sinfonie"></div><div id="jazz"></div><div id="rock"></div><div id="literatur"></div><div id="erbe"></div><div id="wettbewerb"></div><div id="weiteres"></div><div id="zoo"></div>
</div>
<div id="eins">0</div>
<div id="zwei">30</div>
<div id="drei">60</div>
<div id="vier">90</div>
<div id="fuenf">120</div>
<div id="eingespart"><h4>Total eingespart: <div id="totalSum">0 CHF</div></h4></div>
</div>
這是jsfiddle: http : //jsfiddle.net/w640ftLf/3/
好像您是在將sticky
類附加到錯誤的元素上。 試試這個,代替:
$(window).scroll(function () {
var scroll_top = $(document).scrollTop();
if (scroll_top > 66) {//height of header
$('.background').addClass('sticky');
} else {
$('.background').removeClass('sticky');
}
});
另外,對於教育,您可以看一下您的榜樣是如何做到的 。
這不是我真正要做的,但是您的功能可以正常工作。
解決問題的最簡單方法是添加padding-top: 66px;
(66為標題高度)同時添加到類'sticky'到body元素。
讓我知道這是否適合您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.