我想在此示例中创建一个平滑的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/
答案 0 :(得分:0)
看起来你正在将sticky
类附加到错误的元素上。试试这个,而不是:
$(window).scroll(function () {
var scroll_top = $(document).scrollTop();
if (scroll_top > 66) {//height of header
$('.background').addClass('sticky');
} else {
$('.background').removeClass('sticky');
}
});
此外,对于教育,您可以查看how your example is doing it。
答案 1 :(得分:0)
我真的不怎么做,但你的功能很好。
解决问题的最简单方法是在添加类“粘性”的同时将padding-top: 66px;
(66为标题高度)添加到body元素。
请告诉我这是否适合您。