2017-11-01 5 views
0

WordPressテーマのサイドナビゲーションメニューを作成しています。 jQuery関数を使用してクリック時にそのクラスを変更することで、サイドからビューに切り替えることができます。ここでの問題は、実際にクラスを変更してメニューを表示するには、モバイルでクリックされてから約1秒かかることです。 WordPressの外で同じコードを使って同じことをしようとすると、完璧に動作するようです。メニューがすぐに表示されます。私はそれがWordPressでそれほど遅くなる原因を突き止めることはできません。jQuery clickイベント機能はWordPressでゆっくりと起動しますが、WordPressの外で使用するとすぐに動作します

は、ここに私のコードです:

$(function() { 
 
    $('.nav-burger').on('click', function() { 
 
     $('.nav').toggleClass('open'); 
 
    }); 
 
}); 
 

 
$(document).mouseup(function(e) { 
 
    var container = $(".open"); 
 

 
    if (!container.is(e.target) // if the target of the click isn't the container... 
 
     && 
 
     container.has(e.target).length === 0) // ... nor a descendant of the container 
 
    { 
 
     $('.nav').removeClass('open'); 
 
    } 
 
});
#navigation { 
 
    display: flex; 
 
    background-color: #AA1111; 
 
    width: 100%; 
 
    height: 50px; 
 
    z-index: 10; 
 
} 
 

 
@media (max-width: 900px) { 
 
    #navigation { 
 
    position: fixed !important; 
 
    top: 0; 
 
    left: 0 !important; 
 
    width: 270px; 
 
    height: 100%; 
 
    transform: translateX(-270px); 
 
    -webkit-transform: translateX(-270px); 
 
    -ms-transform: translateX(-270px); 
 
    transition: transform 0.4s ease; 
 
    } 
 
    #navigation.open { 
 
    transform: translateX(0); 
 
    -webkit-transform: translateX(0px); 
 
    -ms-transform: translateX(0px); 
 
    transition: transform 0.4s ease; 
 
    position: relative; 
 
    z-index: 555; 
 
    } 
 
    #navigation.open~.mask { 
 
    position: fixed; 
 
    top: 0; 
 
    bottom: 0; 
 
    right: 0; 
 
    left: 0; 
 
    background: rgba(0, 0, 0, 0.5); 
 
    z-index: 9; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="site-title-container" class="header-elements col-md-3 col-sm-3"> 
 
\t \t \t \t \t <p class="nav-burger">Open</p> 
 
\t \t \t \t \t <h3 class="site-title"><a href="javascript:void(0);" rel="home">Title</a></h3> 
 
\t \t \t \t </div> 
 
<div id="navigation" class="nav"> 
 
</div>

私が最初にそれが遅延を持つ私の機能に問題があるだろうと思ったが、それに何か問題が、私は、そこにいなかったことを見た後にWordPressなしで実行しようとしました。遅れずに意図どおりに機能しました。 WordPressが遅くなる理由はありますか?

編集:モバイルデバイスでは遅いです(すべてがスマートフォンの最悪のものではありません)。デスクトップ上では正常に動作します。また、すべてのマークアップをナビゲーションメニュー内に含めておらず、複雑にしていません。私はWordPressで生成されたマークアップでテストしましたが、WordPressの外ではまだうまく動作していますので、原因ではありません。テスト用サイトのライブサンプルはhttps://played-disassembly.000webhostapp.com/です。

EDIT 2:他にも指摘されているように、Android用Chromeにないとうまくいくように見えます。私はFirefoxでそれを試して、シームレスに動作しました。 iOSのSafariでも同じです。だから、この問題はChromeにあるようです。

+0

ローカルコードと比較すると、ローカルコードは常に高速になります。それ以上の情報なしで言うのは難しいですが、多分$のエイリアスを試してみてください。 https://api.jquery.com/jquery.noconflict/ –

+0

メニューは携帯電話やデスクトップトップでも遅くなっていますか?また、URLを指定すると、サイトのテストを容易にすることができます。 –

+0

あなたはWordpressの有無にかかわらずまったく同じHTMLを持っていますか?もしそうでなければ、Wordpressを使わないHTMLはかなり小さいですか? – vlasits

答えて

0

短い答え:
クライアント側のコードが遅く実行させるようなWordpressのに固有のものはありません。ページがブラウザに読み込まれると、Wordpressが実行されます。

長い答え:

サイトのローカルおよびPRODバージョン間の性能差が生じることができるもののためにいくつかの可能性があります。 Wordpressのテーマは、あなたのjsと矛盾する(あるいは単にパフォーマンスdegredationの原因のいずれかであるJavaScriptを(ライブラリの形で、またはテーマ固有のJSの形でいずれか)を含めている

  1. :ここでは、これらの可能性の2つですパフォーマンスの問題があるため)
  2. prodサイトには、多くのhtmlノードがあり、コード(非常に多くのノードまでパフォーマンスが良いはずです)とそれ以外のものサイト。
関連する問題