私は1ページを作成し、アドレスを変更するためにpushStateを使用しています。今、私が後退すると、ポップステートが発射され、現在の位置から最後の位置にスクロールしてページをアニメートしたいと思います。それはもちろん動作しますが、ページは先頭にジャンプします。popstate - 実際に戻るには、戻るボタンを2回クリックする必要があります
どのようにその動作を防止する方法を知っていますか?私はスクロールをアニメーション化して、URLを変更した場合、それはないだろう、判明OK:私は....スクロールをアニメーション化する
感謝:)
//編集をjQueryのを使用しています周りのジャンプ - ので、私はそれを少し説明し、コードが少し厄介です...
http://www.testwebseiten.at/user/falk/stein-jagersbacher.at
を今私はダブルプレス取り戻すためのバックボタンにあります。
var scrollCurrentSection = function(event) {
if (typeof event.preventDefault != 'undefined')
event.preventDefault();
var page = "";
if (window.location.href.substr(-1) == '/')
page = sjag.index;
else
page = window.location.href.match(/([^\/]+)$/)[1];
$this = $('a[href$="'+page+'"]');
if ($this.length) {
sjag.scrollToSection($this);
}
}
window.onpopstate = scrollCurrentSection;
sjagにはいくつかのオプションとメソッドが含まれています... sjag.index
には 'index.php'だけが含まれ、sjag.scrollToSection
にはアニメーションが含まれています。ナビゲーションのリンクをクリックすると
は、以下の関数が呼び出されます:
// set navi
$("#navi a, #navi-add a").click(function(event) {
var data = $(this).data('sjagpage');
if (typeof data == 'undefined')
return;
event.preventDefault();
// animate scrolling
$this = $(this);
sjag.scrollToSection($(this), function() {
history.pushState("", "", $this.attr('href'));
});
});
$(this).data('sjagpage')
はjQueryの要素が含まれています。
スクロールをアニメートしないと、戻ってくるのに1回クリックするだけですが、アニメーションを作成すると2つ必要です...なぜですか?
:
あなたはそれをのようなものを結合する必要があります。あなたはポストしてもらえますか? –
@Deepak:私はしました - 私はあなたがもう少し理解してくれることを願っています:) – lumio