样式下拉:获取和总和兄弟元素的高度

时间:2016-09-28 04:39:35

标签: javascript jquery css drop-down-menu dropdown

我有这个动态标记,其中列表元素的数量由我的数据库定义,所以我永远不会知道使用静态id或类来识别每个:

<ul>
  <li>element1</li>
  <li>element2</li>
  <li>element3</li>
  <li>element4</li>
  <li>element5</li>
  <li>element6</li>
</ul>

我需要能够编辑每个列表的css,以便使用“top:XXpx”定位它,就像this plugin does但没有原型,并且没有创建标记的所有函数,因为我已经有了标记

三江源!

1 个答案:

答案 0 :(得分:0)

您可以在jquery中使用'ul li'选择你的li,然后给它任何你想要的CSS

<强> Demo

var top = 0;
var zIndex = $('ul li').length;
var width = 300;
var left = 0;
$('ul li').each(function(){
    top = top + 5;
    zIndex = zIndex - 1;
    width = width - 4;
    left =  left + 2;
    $(this).css('top', top+'px');
    $(this).css('z-index', zIndex);
    $(this).css('width', width+'px');
    $(this).css('left', left+'px');
 });

这里我只是添加一些带有一些intinal值的全局变量,并在每个li的循环中使用这些变量来为每个li设置css属性,具体取决于它的顺序。

例如:每一个都有顶部,从最后一个增加3(除了z-index,因为我希望最后一个具有较小的值,所以我从最大的数字开始(基于li元素数量是动态的) )然后在每个元素中减少它。)

编辑:在css中提供元素position:absolute;对于使其看起来像您想要的示例非常重要。