我写了一个基于 jQuery 的小滑动脚本。要记住哪个幻灯片当前处于活动状态并在重新加载时恢复此幻灯片,将location.hash
更新。在 Chrome 中,这工作得很好。在 Opera 和 Firefox 中,动画显示了一些奇怪的行为。尽管 CSS 属性已更新为正确的值,但在两张幻灯片之间滑动结束。此行为仅在location.hash
更新属性时出现。
结合这两种机制时是否存在已知的并发症?我真的无法想象它们是如何相互影响的。
相关的 JavaScript 代码:
var currentPage = 0;
var lock = false;
var transitionTime = 500;
function changePage( direction ) {
if( lock )
return;
var currIndex = currentPage;
var nextIndex = currentPage + direction;
var cPage = $( '#page' + currIndex );
var nPage = $( '#page' + nextIndex );
if( cPage.length == 0 || nPage.length == 0 )
return;
// Set lock
lock = true;
// Animate scrolling container
var newPosition = -800 * nextIndex;
$( '#scroller' ).animate( {
left: newPosition
}, transitionTime, function() {
// Remove lock
lock = false;
} );
currentPage = nextIndex;
location.hash = 'page' + nextIndex;
}
jsFiddle从地址栏中 删除/show/
以访问 jsFiddle 编辑页面。导航是通过箭头键完成的。