0

現在、以下の 2 つのプラグインを使用しています。2 番目のプラグインが原因で、最初のプラグイン ( http://www.berriart.com/sidr/#development ) が遅延しています。理由がわかりません。これが私のウェブサイトhttp://www.jonasandnicole.comで、モバイル ナビゲーションを表示するにはナビゲーションを縮小する必要があります。

シドル​​ jQuery

<script>
$(document).ready(function() {
$('#simple-menu').sidr();
});
</script>  

スムーズ スクロール jQuery

<script src="js/jquery.easing.1.3.js"></script>
<script>
$(function() {
var lengthDiv = $('.desktop').find('li').length;
var current = 0;
$('a').bind('click',function(event){

var $anchor = $(this);
current = $anchor.parent().index();

$('html, body').stop().animate({
    scrollTop: $($anchor.attr('href#')).offset().top
}, 1500,'easeInOutExpo');
/*
if you don't want to use the easing effects:
$('html, body').stop().animate({
    scrollTop: $($anchor.attr('href')).offset().top
}, 1000);
*/
event.preventDefault();
});
$(document).keydown(function(e){if($(':focus').length <= 0)e.preventDefault()})
$(document).keyup(function(e){
    var key = e.keyCode;
    if(key == 38 && current > 0){
        $('.desktop').children('li').eq(current - 1).children('a').trigger('click')
    }else if(key == 40 && current < lengthDiv){
        $('.desktop').children('li').eq(current + 1).children('a').trigger('click')
    }
})
});
</script>
4

1 に答える 1

0

Javascript は、ページに含まれている順序で実行されます。少なくとも、独立して実行できる retina.js などで defer (およびおそらく async) 属性を使用することをお勧めします。問題を引き起こしているスクリプトを別のファイルに移動して、そこで同じ手法を使用できるようにすることも検討してください。

メニュー要素が表示されたらすぐにクリックすると、わずかな遅延が見られますが、すべての実行が完了するまで少し待つと (Chrome 27)、遅延は見られません。sidrこれは、呼び出しが最初に終了できるように、他のアイテムを非同期で実行し、遅延させる必要がある単なるパフォーマンス チューニングのように思えます。

于 2013-05-31T14:12:39.823 に答える