jQueryをベースにしたスライディングスクリプトを少し書きました。どのスライドが現在アクティブであるかを覚えて、リロード時にこのスライドを復元するために、location.hash
が更新されます。Chromeでは、これは問題なく機能します。OperaとFirefoxでは、アニメーションは奇妙な振る舞いを示しています。CSSプロパティは正しい値に更新されますが、スライドは2つのスライド間で終了します。この動作は、location.hash
プロパティが更新された場合にのみ発生します。
これらの2つのメカニズムを組み合わせる場合、既知の問題はありますか?それらが互いにどのように影響するかは本当に想像できません。
関連する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/
アドレスバーから 削除ナビゲーションは矢印キーを使用して行われます。