1

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

当你这样做时,会有一些反弹效果(chrome),你可以看到其他楼层的一小部分,我知道每个浏览器都有不同的调整大小效果,但我想知道是否有办法修复它。

调整大小效果: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 开发方面还是个新手,所以如果您对系统的语法或批评有任何建议,我完全开放。

谢谢

4

1 回答 1

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);
于 2012-09-17T16:24:24.207 回答