所以我试图为每个菜单项创建一个动态生成填充(左和右)的菜单,这样如果用户调整浏览器大小,那么菜单项列表就不会溢出到第二行。下面是我为此编写的代码。并且代码工作得很好但是并非所有内容都能在Safari中顺利运行。在Safari中加载页面时,脚本无效。只有在我开始调整浏览器大小后,脚本才会运行并更改填充宽度。这不会发生在任何其他浏览器上。
//autowidth for menu items
function setMenuWidth() {
var fullWidth = $('.main-navigation').width();
var numElements = $('.main-navigation > ul > li > a').length;
var contentWidth = 0, differenceWidth, paddingWidth;
$('.main-navigation > ul > li > a').each(function(){
contentWidth += $(this).width();
});
differenceWidth = fullWidth - contentWidth;
paddingWidth = (differenceWidth/numElements)/2;
$('.main-navigation > ul > li > a').css('padding-left', paddingWidth + 'px');
$('.main-navigation > ul > li > a').css('padding-right', paddingWidth + 'px');
}
setMenuWidth();
正如您所看到的,我创建了该函数,然后立即调用它。 然后为了让它在调整大小时运行,我调用了一个resize事件。
$(window).resize(function(){
scrollToResults();
setMenuWidth();
});
我希望我尽可能地清楚。有没有人遇到过这个问题?提前谢谢!