我的目标是创建一个网格,当用户垂直或水平滚动时,该网格始终会捕捉到浏览器的顶部和左侧边缘。我有基本版本,但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);
}
);
});
});
非常感谢
斯图尔特