我很难在此处集中我的大型菜单下拉菜单:http: //drupal.scienceworld.ca
悬停时展开的下拉菜单:我应该使用 CSS 定位,还是应该调整一些 JS 行为?如果 CSS 是问题所在,随着浏览器大小的变化,我应该如何最好地将下拉菜单保持在浏览器的中心?
我很难在此处集中我的大型菜单下拉菜单:http: //drupal.scienceworld.ca
悬停时展开的下拉菜单:我应该使用 CSS 定位,还是应该调整一些 JS 行为?如果 CSS 是问题所在,随着浏览器大小的变化,我应该如何最好地将下拉菜单保持在浏览器的中心?
仔细查看您的网站后,我看到您的插件正在为隐藏的 div(访问子菜单)设置一些样式:
例如,在我的 1366x780 浏览器大小中,我得到:
position: absolute;
width: 960px;
display: none;
top: 158px;
left: 580.5px;
这是怎么回事:
插件计算隐藏元素的绝对位置(我认为您正在使用 qTip 插件),并且此计算基于菜单悬停项(访问本例)。
可能的解决方案:
您可以编写一个简单的 jquery 插件代码,以根据父 div 宽度水平居中 div,而不是使用该 qTip:
jQuery.fn.center = function () {
this.css("position","absolute");
this.css("display", "visible"
this.css("top", "158px");
this.css("left", Math.max(0, (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft()) + "px");
return this;
}
像这样使用它:
$(元素).center();
注意:您应该在菜单项中的悬停事件上使用它。