ウェブサイトにスライドパネルを設置しています。
アニメーションが終了したら、ハッシュを次のように設定しました
function() {
window.location.hash = id;
}
(これはコールバックであり、id
以前に割り当てられます)。
これは、ユーザーがパネルをブックマークできるようにするために、またJavaScript以外のバージョンが機能するためにうまく機能します。
しかし、ハッシュを更新すると、ブラウザはその場所にジャンプします。これは予想される動作だと思います。
私の質問は、これをどのように防ぐことができますか?つまり、どうすればウィンドウのハッシュを変更できますが、ハッシュが存在する場合はブラウザで要素までスクロールしませんか?ある種のevent.preventDefault()
もののようなもの?
私はjQuery 1.4とscrollToプラグインを使用しています。
どうもありがとう!
更新
パネルを変更するコードは次のとおりです。
$('#something a').click(function(event) {
event.preventDefault();
var link = $(this);
var id = link[0].hash;
$('#slider').scrollTo(id, 800, {
onAfter: function() {
link.parents('li').siblings().removeClass('active');
link.parent().addClass('active');
window.location.hash = id;
}
});
});
event.preventDefault()
:)