我有一个带有溢出的水平菜单:隐藏应用于它。
该菜单由 CMS 管理,因此有时它不会溢出,但是当它溢出时,我想找到最后一个可见的 li 元素并插入一个下拉菜单,其中包含溢出的菜单项。我遇到的问题是选择最后一个可见的 li(以便在它之前插入 HTML)作为被溢出隐藏的元素:hidden 似乎仍然算作可见。
到目前为止,我的代码是:
$(window).load( function () {
var totalWidth = 0;
var menu = $('.nav .menu ul');
var menuWidth = menu.innerWidth();
menu.find('li').each(function() {
totalWidth += $(this).innerWidth() + 30; // add margin
});
if (totalWidth > menuWidth) {
var num_li = $('.nav .menu ul > li:visible').length;
$('.nav .menu ul li:nth-child('+num_li+')').append("<li><a>More</a></li>");
}
});
变量 num_li 返回完整数量的 li 元素,而不仅仅是查看页面的人可见的元素!