jquery在调整窗口大小时计算元素大小

时间:2013-02-08 12:54:19

标签: jquery html css resize drag

我希望有人可以帮忙解决这个问题。

我编写了一个函数,它根据现有列表项的数量和父容器中的剩余宽度,为nav ul中的最终li项添加宽度。

这适用于文档加载,如果调整文档大小并单击href,但在实际调整大小期间,不会重新计算元素的大小。

我做了fiddle来帮助说明这一点。

有人知道如何在调整窗口大小时动态进行计算吗?

这是js

 $(document).ready(calcWidth);
$(document).resize(calcWidth);

function calcWidth(){
    // get array of all the list items in the nav
    var $listWidth = $('ul#main-nav li').map(function(){
        return $(this).width();
    }).get();
    var $itemCount = $('#main-nav li').length; //this works as margin-right is set to 1px
    var $contWidth = $('#main-nav').width(); // get the full container width
    var $sum = 0;
    $.each($listWidth,function(){$sum+=parseFloat(this) || 0;});
    $('ul#main-nav li.final a').css({
        width:  $contWidth - $sum - $itemCount, //set the width of the final li to be the total container minus the sum of the existing li elements
        height: '12px'
    });
}

如果你需要更多代码发布在这里,请告诉我,但这一切都在小提琴中。

由于 路加

1 个答案:

答案 0 :(得分:2)

您无需使用javascript执行此操作。

在UL上移动clearfix类(因为列表项已浮动),在UL上添加紫色背景,在列表项中添加1px白色右边框。你可以删除最后一个LI。

See it here