博客 - JS/Ajax/AS

JS实现多列等高

  很多同学一定在为多列等高的问题头痛吧!今天提供一个很方便的控制多列等高的JS,可以控制多个标签,并循环遍历任意多个标签。不需要添加ID或class。很不错的!

  先看html代码:

  1. <ul id="news">
  2.  <li>
  3.   <h3><a href="#">news title 1</a></h3>
  4.   <p>Descirption 1 阿斯<br>asas</p>
  5.   <p class="more"><a href="#">more 1</a></p>
  6.  </li>
  7.  <li>
  8.   <h3><a href="#">news title 2</a></h3>
  9.   <p>Descirption 1</p>
  10.   <p class="more"><a href="#">more 1</a></p>
  11.  </li>
  12.  <li>
  13.   <h3><a href="#">news title 3</a></h3>
  14.   <p>Descirption 1</p>
  15.   <p class="more"><a href="#">more 1</a></p>
  16.  </li>
  17.  <li>
  18.   <h3><a href="#">news title 4</a></h3>
  19.   <p>Descirption 1</p>
  20.   <p class="more"><a href="#">more 1</a></p>
  21.  </li>
  22. </ul>

  这里是JS代码(有用到一个JS库,DOMHelp):

  1. fixcolumns={
  2.  highest:0,
  3.  moreClass:'more',
  4.  
  5.  init:function(){
  6.   if(!document.getElementById || !document.createTextNode){return;}
  7.   fixcolumns.n=document.getElementById('news');
  8.   if(!fixcolumns.n){return;}
  9.   fixcolumns.fix('h3');
  10.   fixcolumns.fix('p');
  11.   fixcolumns.fix('li');
  12.   
  13.  },
  14.  fix:function(elm){
  15.   fixcolumns.getHighest(elm);
  16.   fixcolumns.fixElements(elm);
  17.  },
  18.  getHighest:function(elm){
  19.   fixcolumns.highest=0;
  20.   var temp=fixcolumns.n.getElementsByTagName(elm);
  21.   for(var i=0;i<temp.length;i++){
  22.    if(!temp[i].offsetHeight){continue;}
  23.    if(temp[i].offsetHeight>fixcolumns.highest){
  24.     fixcolumns.highest=temp[i].offsetHeight;
  25.    }
  26.   }
  27.  },
  28.  fixElements:function(elm){
  29.   var temp=fixcolumns.n.getElementsByTagName(elm);
  30.   for(var i=0;i<temp.length;i++){
  31.    if(!DOMhelp.cssjs('check',temp[i],fixcolumns.moreClass)){
  32.     temp[i].style.height=parseInt(fixcolumns.highest)+'px';
  33.    } 
  34.   }
  35.  }
  36. }
  37. DOMhelp.addEvent(window,'load',fixcolumns.init,false);

  自己复制另存代码,测试一下,应该会与用到的时候。注意该处用到的DOMHelp库,是一个操作文档节点很方便且符合标准并兼容各浏览器的JS库。

标签:

写下您的看法

  • :em18:
  • :em12:
  • :em03:
  • :em08:
  • :em06:
  • :em05:
  • :em07:
  • :em15:
  • :em11:
  • :em16:
  • :em01:
  • :em17:
  • :em10:
  • :em13:
  • :em14:
  • :em02:
  • :em09:
  • :em04:

仅支持“a、abbr、strong、em、blockquote、code”几个简单的标签

使用腾讯微博登陆 使用新浪微博登陆