js 控制 li 显示位置定时切换

yeff 2015-05-25 08:45:07
<ul>
<li>a1</li>
<li>b2</li>
<li>c3</li>
<li>d4</li>
<li>e5</li>
<li>f6</li>
<li>g7</li>
<li>h8</li>
</ul>


现在显示的是正序,我的需求是每10分钟切换位置,如,下10分钟自动切换成

<ul>
<li>h8</li>
<li>a1</li>
<li>b2</li>
<li>c3</li>
<li>d4</li>
<li>e5</li>
<li>f6</li>
<li>g7</li>
</ul>


求大侠解决
...全文
192 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeff 2015-06-09
  • 打赏
  • 举报
回复
太感谢了!!!!
Go 旅城通票 2015-05-26
  • 打赏
  • 举报
回复
你没套对代码吧。。标签名称要改为tr,不是li了 <table><tbody id="ul1"> <tr><td>a1</td></tr> <tr><td>b2</td></tr> <tr><td>c3</td></tr> <tr><td>d4</td></tr> <tr><td>e5</td></tr> <tr><td>f6</td></tr> <tr><td>g7</td></tr> <tr><td>h8</td></tr></tbody> </table> <script type="text/javascript"> var ul1 = document.getElementById('ul1'), lis = ul1.getElementsByTagName('tr'), l = lis.length - 1; for (var i = 0; i <= l; i++) ul1.appendChild(lis[rnd(0, l)]); //随机插入li调整顺序 function rnd(min, max) { var tmp = min; if (max < min) { min = max; max = tmp; } return Math.floor(Math.random() * (max - min + 1) + min); } setInterval(function () { lis = ul1.getElementsByTagName('tr'); ul1.insertBefore(lis[lis.length - 1], lis[0]); }, 0.1 * 60 * 1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10 </script>
yeff 2015-05-25
  • 打赏
  • 举报
回复
太牛了!!!超赞 现在就是还有最后一个困惑了 为啥我照抄你的 li,换成tr的模式就不好用呢, lis.length 已经取出来了,但是显示不正常、
Go 旅城通票 2015-05-25
  • 打赏
  • 举报
回复
<ul id="ul1">
<li>a1</li>
<li>b2</li>
<li>c3</li>
<li>d4</li>
<li>e5</li>
<li>f6</li>
<li>g7</li>
<li>h8</li>
</ul> 
<script type="text/javascript"> 

var ul1=document.getElementById('ul1'),lis=ul1.getElementsByTagName('li'),l=lis.length-1;
for(var i=0;i<=l;i++)ul1.appendChild(lis[rnd(0,l)]);//随机插入li调整顺序

function rnd(min,max){
  var tmp=min;
  if(max<min){min=max;max=tmp;}
  return Math.floor(Math.random()*(max-min+1)+min);
}


setInterval(function(){
lis=ul1.getElementsByTagName('li');
ul1.insertBefore(lis[lis.length-1],lis[0]);
},0.1*60*1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10
 
</script>
yeff 2015-05-25
  • 打赏
  • 举报
回复
第一次加载 随机 显示,要怎么办呢?
Go 旅城通票 2015-05-25
  • 打赏
  • 举报
回复
用insertBefore方法插入最后一个节点到第一个前面就好了
<ul id="ul1">
<li>a1</li>
<li>b2</li>
<li>c3</li>
<li>d4</li>
<li>e5</li>
<li>f6</li>
<li>g7</li>
<li>h8</li>
</ul> 
<script type="text/javascript">  
var ul1=document.getElementById('ul1'),lis=ul1.getElementsByTagName('li');
setInterval(function(){
lis=ul1.getElementsByTagName('li');
ul1.insertBefore(lis[lis.length-1],lis[0]);
},0.1*60*1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10

</script>

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧