调整大小元素和动画滚动顶部/滚动的错误

时间:2012-09-13 10:58:30

标签: jquery resize jquery-animate scrolltop

我开发了插件ascensor.js(http://kirkas.ch/ascensor/) 在完全重写之后(whitout scrollto插件)我在调整大小的功能上遇到了一些错误。

当你这样做时,有一些反弹效果(铬),你可以看到其他地板的一小部分,我知道每个浏览器都有不同的调整大小效果,但我想知道是否有办法解决它。 / p>

调整大小效果: Chrome / Safari / Firefox:小弹跳并看到其他楼层 Opera:点击之前不会调整大小效果

这里是完整的插件:http://kirkas.ch/ascensor/js/jquery.ascensor.js

这里有关于调整大小的部分:

function resizeFloor(){
    var WW=$(window).width();
    var WH=$(window).height()

    if(params.Direction=='y'){$(node).stop().animate({scrollTop:(floor-1)*WH},1);}
    if(params.Direction=='x'){$(node).stop().animate({scrollLeft:(floor-1)*WW},1);}
    if(params.Direction=='chocolate'){
        var target = AscensorMap[StageOn-1].split('|');
        $(node).stop().animate({
        scrollLeft:(target[1]-1)*WW,
        scrollTop:(target[0]-1)*WH
        },1);
    }


    $(node).height(WH).width(WW).children(params.ChildType).each(function(){
        $(this).height(WH).width(WW);
    });

    if(params.Direction=='x'){
        $(node).children().css('position','absolute');
        $(node).children().each(function(index){$(this).css('left',index*WW);})
    }

    if(params.Direction=='chocolate'){
        $(node).children(params.ChildType).each(function(index){
            var CoordName = AscensorMap[index].split('|');
            $(this).css({'position':'absolute', 'left':(CoordName[1]-1)*WW, 'top':(CoordName[0]-1)*WH});
        });
    }
}

此外,我在JS开发方面还很陌生,所以如果您对语法或批评系统有任何建议,我会完全开放。

由于

1 个答案:

答案 0 :(得分:1)

我自己找到了,而不是

$(node).stop().animate({
    scrollLeft:(target[1]-1)*WW,
    scrollTop:(target[0]-1)*WH
},1);

我应该使用

$(node).stop().scrollTop((target[0]-1)*WH).scrollLeft((target[1]-1)*WW);