0 Comments

修改层的宽度控制列表宽度(2)

发布于:2012-11-14  |   作者:广州网站建设  |   已聚集:人围观
修改层的宽度控制列表宽度(2)

2.jQuery的css()函数--元素的层叠样式

该函数取得或者设置匹配元素的层叠样式。其语法形式如下:


  1. 语法一   css(name)         //访问第一个匹配元素的样式属性  
  2. 语法二   css(properties)       //把一个"名/值对"对象设置为所有匹配元素的样式属性  
  3. 语法三   css(name,value|fn)    //在所有匹配元素中,设置一个样式的值,数字自动转换为像素值 

注:第一种语法形式中name参数必须是有效的属性名。第二种语法形式中参数以       CSS样式设定的形式出现,并用花括号包围。第三种语法形式参数分成两种表现形式,一种是(name,value),name为有效属性名,value为属性值;另一种是(name,fn),name同样是有效属性名,fn为返回属性值的函数。

3.功能实现

控制列表项的宽度步骤如下。

(1)需要利用jQuery的ready()函数实现在页面整体加载完成后执行特效效果。

(2)在function()内部使用each()函数遍历列表项。

(3)判断每一个列表项的整体宽度是否大于预定义宽度。

(4)如果大于,计算出列表项第一部分需要的长度并设置。

(5)适当调整每个列表项的高度。

首先,把jQuery库引入进来:


  1. <script src="jslib/jquery-1.6.min.js" type="text/JavaScript"></script> 

 

然后,添加JavaScript代码,利用jQuery的选择器找出每个列表项,获取需要的长度,并按照要求来进行设置。完整代码如下:

  1. 1<script type="text/JavaScript"> 
  2. 2        $(function () {                            //隐式调用ready()函数  
  3. 3            var linelen = 120;                 //预定义列表项的宽度  
  4. 4            $.each($(".list"), function (i) {  //使用each()遍历每一个div  
  5.             //判断列表项实际长度是否超出范围  
  6. 5                if (($(".subone:eq(" + i + ")").width() + $(".subtwo:eq(" +           
  7.                  i + ")").width()) > linelen) {   
  8.                                                 //计算出列表项第一部分需要的宽度  
  9. 6                    var length = linelen - $(".subtwo:eq(" + i + ")").width();       
  10. 7                    $(".subone:eq(" + i + ")").CSS("width", length + "px");                                                //设置列表项第一部分的宽度  
  11. 8                   $(".subone:eq("+i+")").CSS("height",65+"px");                                                       //适当调整列表项的高度  
  12. 9                }  
  13. 10            });  
  14. 11        });  
  15. 12</script> 

 

这里假定列表项第二部分,也就是"简介"的宽度是相同的。由于层的宽度改变后原有内容要变成多行,因此在代码的最后一部分可以加上修改标题所在DIV的高度,使标题信息可以完全显示出来,而不会被其他内容覆盖掉。图4.4为应用了jQuery调整列表项宽度后的效果。
图4.4  调整层的宽度实现列表中的列表项宽度相同
以上两种控制列表项宽度的方法实现原理不同,个人认为第二种适用性更强,读者可根据现实需求灵活掌握。
标签:
飞机