1

我的目标是创建一个网格,当用户垂直或水平滚动时,它总是捕捉到浏览器的顶部和左侧边缘。我有基本版本,但与动画scollLeft相比,这部分总是很生涩。scrollTop

如果有人想到更好的解决方案,我将不胜感激,它正在慢慢让我发疯!

到目前为止,这是它的骨骼http://jsfiddle.net/stuart09876/vXvBV/1/

这是脚本...

$(function(){
    var windowtest = $(window);
    var _top = $(windowtest).scrollTop();
    var _left = $(windowtest).scrollLeft();
    var individualDivHeight = 140;
    var individualDivWidth = 220;

    $(windowtest).scroll(function(){
        var _cur_top = $(windowtest).scrollTop();
        var _cur_left = $(windowtest).scrollLeft();
        var totalHeight = $('#container').height();
        var totalWidth = $('#container').width();
        var posToScroll = Math.round(_cur_top / individualDivHeight) * individualDivHeight;
        var posToScrollLeft = Math.round(_cur_left / individualDivWidth) * individualDivWidth;

        $('html, body').stop().animate({scrollTop: posToScroll}, 100,
            function(){
                $('html, body').stop().animate({scrollLeft: posToScrollLeft}, 100);    
            }
        );              
    });
});

非常感谢

斯图尔特

4

0 回答 0