0

だから、私はかなりユニークな問題を抱えています(アーキテクチャに多少基づいています)。

このホームページはスクロールがスムーズです。それは正常に動作します。トップバーの「登録」をクリックすると、フォーム (部分ビュー) が正常に表示されます。「About」または「Demo」のいずれかをクリックすると、クレイジーなダブルスクロールが発生します。

また、「About」をクリックすると (登録をクリックした後)、二重スクロールが発生するとします。上にスクロールしてもう一度クリックすると正常に動作しますが、上にスクロールして「Demo」をクリックすると再び発生します。これは、クリックを交互に行うと非常に楽しくなります (笑) 残念ながら、それはポイントではありません。

私はjavascriptに関してはまったくの初心者で、これを数日間試しましたが、何もしませんでした。

これは、「About」および「Demo」ボタンに使用されているコードです。

//Smooth scroll - excludes register
$('a[href*=#], a[href*="/#"]').click(function () {
      var hash = $(this).attr('href');
      hash = hash.slice(hash.indexOf('#') + 1);
      if ( hash ) { $.scrollTo(hash == 'top' ? 0 : 'a[name='+hash+']', 500); window.location.hash = '#' + hash; return false; }
});

これはregフォーム用です:

if (typeof window.history.pushState == "function") {
    function showRegister() {
        if ( window.location.pathname == '/home/register' ) {
            var form = $('#pg-signup-register');

            $('#landing-register-clip').css({ 'max-height': window.innerHeight + 'px' });

            form.css({
                'margin-top': ((window.innerHeight - form.outerHeight()) / 2) + 'px'
            });
            $('#landing-register').animate({
                height: window.innerHeight + 'px'
            }, 1000);

            $.scrollTo(0, 500);
        } else {
            $('#landing-register').animate({
                height: 0
            }, 1000);
        }
    }

    window.addEventListener('popstate', showRegister);

    // Smooth scrolling - register form
    $('a[href^="/home/register"], a[href="/"]').click(function () {
        if ( window.location.pathname != $(this).attr('href') )
            window.history.pushState(null, null, $(this).attr('href'));
        showRegister();
        return false;
    });

}
4

1 に答える 1