【发布时间】:2013-03-28 17:11:25
【问题描述】:
我有两个divs,每个都有两个classes,隐藏和显示(响应式网络需要这些类)。
HTML
<!-- buttons -->
<div class="jump_to_raspored_busa_sidemenu">Cjenik</div>
<div class="jump_to_cjenik_sidemenu">Raspored</div>
<!-- parts -->
<div class="cjenik shown">Cjenik scroll</div>
<div class="zet_linije hidden">Zet linije</div>
<div class="zet_linije shown">Zet linije</div>
<div class="cjenik hidden">Cjenik scroll</div>
JQuery
$('.jump_to_raspored_busa_sidemenu').on('click',function(){
$("html, body").animate({ scrollTop: $('.cjenik').offset().top }, 1000);
});
$('.jump_to_cjenik_sidemenu').on('click',function(){
$("html, body").animate({ scrollTop: $('.zet_linije').offset().top }, 1000);
});
当我点击Cjenik 时,scrollTop 工作正常。
但是当我点击Raspored 时,它并没有向下滚动。
为什么它适用于Cjenik 部分,但不适用于Raspored 部分?
【问题讨论】:
-
那是因为选择器
$('.zet_linije')匹配多个元素。 -
通过在点击时记录
offset().top开始调试,看看它返回什么?on('click',function(){ console.log( $('.cjenik').offset().top); ... }) -
@Martin
$('.cjenik')也是如此,但它确实有效。 -
它得到
.zet_linije集合中的第一个元素,并且返回0的偏移量。瞄准最后一个,见FIDDLE