0

现在我正在使用下面列出的两个插件。第二个插件导致第一个插件(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 回答