2015-07-19 55 views
1

我试图滚动溢出div直到达到特定元素#id。 我的问题是: 我不希望这个元素为“scrollTop”。当元素在div底部可见时,我想停止滚动。就像这样:将溢出div滚动到某个元素,并使其停止在div的底部

enter image description here

所有我得到的东西scrollTop的...

function scrollItem(itemID) { 
    var container = $('#overflowDIV'), 
     scrollTo = $(itemID); 

    container.animate({ 
     scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() 
    }, 100); 
} 

回答

0

尝试减去容器的内部高度。这是未经测试的代码。

function scrollItem(itemID) { 
    var container = $('#overflowDIV'), 
    scrollTo = $(itemID); 

    container.animate({ 
    scrollTop: 
     scrollTo.offset().top - 
     container.offset().top + 
     container.scrollTop() - 
     container.innerHeight() 
    }, 100); 
} 
+0

非常感谢! 我刚刚增加了LI高度container.innerHeight()+ 30,并且工作得很漂亮! –

+0

该物品的高度呼叫良好。如果你不想硬编码30,你可以尝试获取它:container.innerHeight()+ scrollTo.height() – ventaur