ScrollTop在DIV中无效,溢出:隐藏

时间:2013-02-26 22:14:24

标签: javascript jquery scrolltop

我有一个隐藏溢出的DIV,该DIV的整个CSS块看起来像这样:

.mainContainer .display_box .container .row .col_4 .dPost_box{
    position:relative;
    height:100%;
    width: 100%;
    overflow:hidden;
}

然后,我想在每次将鼠标悬停在元素上时制作DIV滚动的内容。但是,它不会起作用。我试过jQuery.scrollTop(),以及更新常规scrollTop,它不会工作。我还尝试使用Smooth ScrollAutoscroll 插件,但它们都不会工作。 我目前的Javascript看起来像这样:

 function autoScroll(div){
     setInterval(function() { 
    if (div.scrollTop() < div[0].scrollHeight - div.height()){
        div.scrollTop(div.scrollTop() + 10);
    }}, 1000);
 }
 $(document).on({mouseenter: function(){
     autoScroll($(this));
 }, mouseleave: function(){        
 }}, '.dPosts_post');

我也试过了:

function autoScroll(div){
     setInterval(function() { 
    if (div.scrollTop() < div[0].scrollHeight - div.height()){
        div.scrollTop[0] +=10;
    }}, 1000);
 }

但什么都行不通。 最好,我想让autoScroll功能起作用,但如果有任何插件可以使用,我会非常乐意尝试它们。

任何想法都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我无法使用scrollTop工作,但我得到了一个解决方法。这是代码,如果其他人将来面临类似的问题:

funnction autoScroll(div){
     //check whether the content does not fit inside the div
     if(div[0].scrollHeight>div.height()){

        //calculate how much the div needs to be scrolled
        var distance = div[0].scrollHeight - div.height() + 20;
        var topCoord = parseInt(div.css('top')); //inital top coordinate of the div
        var lineHeight = Math.floor(parseInt(div.css('font-size')) * 1.5);

        //calculate approximately how many lines there are in the distance that needs scrolling
        var linesCt = distance/lineHeight; 

        //scroll the div at a pace of 2.5s per line
        div.animate({top: topCoord - distance + 'px'}, 2500 * linesCt);
     }
}