js 不同时间加载不同的LI数值

yeff 2015-09-08 03:09:00

<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>


上面是版主帮忙处理的,现在需求改变了下
需要每10分钟加载不同的数据
如1-10分钟是现在的默认序列加载
11-20分钟的加载默认序列为


<ul id="ul1">
<li>b2</li>
<li>c3</li>
<li>d4</li>
<li>e5</li>
<li>f6</li>
<li>g7</li>
<li>h8</li>
<li>a1</li>
</ul>

21-30分钟加载序列为


<ul id="ul1">
<li>c3</li>
<li>d4</li>
<li>e5</li>
<li>f6</li>
<li>g7</li>
<li>h8</li>
<li>a1</li>
<li>b2</li>
</ul>


依次类推,求论坛大大帮忙
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
每个小时的时间段?你就只能更换6个li了,多余的li就无法更换了
<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'),arr=[],l=lis.length;
    for (var i = 0; i < lis.length; i++) arr[i] = lis[i];//节点存入数据,方便依据时间进行节点获取,lis是节点集合对象,会依据节点循序进行变更,不好操作
    function sortLI(index) {

        for (var i = 0; i <index==0?l: index/*注意这里,如果是0需要全部重排,因为可能你的li会多余6个*/; i++) {
            ul1.appendChild(arr[i]);
        }
    }
    setInterval(function () {
        var d = new Date();//客户端当前时间,由于有时差,如果想所有区域用户显示同意,这个时间你得从服务器来获取才行
        var min = d.getMinutes();//获取时间,如果是服务器获取,上面的可以取消了,这里服务器时间直接赋值给min这个变量
        var index = Math.floor(min / 10) + (min % 10 ? 0 : 1);//获取时间段
        sortLI(index);
    },1000);//1s跟新1次
</script>
yeff 2015-09-08
  • 打赏
  • 举报
回复
时间的判断我写了,但是默认的位置,我迷糊了。。。 var myDate = new Date(); myM = myDate.getMinutes(); myM = parseInt(myM/10); //默认10分钟加载的位置 下面的就不会写每个LI的默认具体位置了
yeff 2015-09-08
  • 打赏
  • 举报
回复
或者就是这句话,我没懂,我也在本地测试了几个数值,加载之后切换效果是变化了,但是不是默认页面加载之后的效果
引用 4 楼 yeff 的回复:
不是这个意思,我试着按照你给我的代码改了好久。。。 是默认第一次加载的时候,按照时间的没十分钟加载次序不同 下面的时间切换是好用的。 [quote=引用 2 楼 showbo 的回复:] var ul1 = document.getElementById('ul1'), lis = ul1.getElementsByTagName('li'); setInterval(function () { lis = ul1.getElementsByTagName('li'); ul1.appendChild(lis[0]); }, 0.1 * 60 * 1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10 改红色那句就好了,只是一个最后变第一个,一个第一变最后而已
[/quote]
yeff 2015-09-08
  • 打赏
  • 举报
回复
现在的注释,不是页面加载之后,6秒一切换位置吗? 我现在需要的效果,是默认加载的时候,也是按照时间不同,加载顺序不同的 比如,00:01-00:10,默认加载的顺序是 <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> 00:11-00:20,默认加载的顺序是 <ul id="ul1"> <li>b2</li> <li>c3</li> <li>d4</li> <li>e5</li> <li>f6</li> <li>g7</li> <li>h8</li> <li>a1</li> </ul> 00:21-00:30,默认加载的顺序是 <ul id="ul1"> <li>c3</li> <li>d4</li> <li>e5</li> <li>f6</li> <li>g7</li> <li>h8</li> <li>a1</li> <li>b2</li> </ul> 至于下面的加载之后,顺序刷新的效果,也要保留的
引用 6 楼 showbo 的回复:
[quote=引用 5 楼 yeff 的回复:] 刚刚的字写错了,“每十分钟”,不是 “ 没十分钟” 没有权限修改,只能回帖了
你10分钟就修改setInterval的参数就可以了啊。。注释不是说明了[/quote]
  • 打赏
  • 举报
回复
引用 5 楼 yeff 的回复:
刚刚的字写错了,“每十分钟”,不是 “ 没十分钟” 没有权限修改,只能回帖了
你10分钟就修改setInterval的参数就可以了啊。。注释不是说明了
yeff 2015-09-08
  • 打赏
  • 举报
回复
刚刚的字写错了,“每十分钟”,不是 “ 没十分钟” 没有权限修改,只能回帖了
yeff 2015-09-08
  • 打赏
  • 举报
回复
不是这个意思,我试着按照你给我的代码改了好久。。。 是默认第一次加载的时候,按照时间的没十分钟加载次序不同 下面的时间切换是好用的。
引用 2 楼 showbo 的回复:
var ul1 = document.getElementById('ul1'), lis = ul1.getElementsByTagName('li'); setInterval(function () { lis = ul1.getElementsByTagName('li'); ul1.appendChild(lis[0]); }, 0.1 * 60 * 1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10 改红色那句就好了,只是一个最后变第一个,一个第一变最后而已
天际的海浪 2015-09-08
  • 打赏
  • 举报
回复

<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">
setInterval(function(){
	var ul1=document.getElementById('ul1');
	var lis=ul1.getElementsByTagName('li');
	ul1.appendChild(lis[0]);
},0.1*60*1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10
</script>
  • 打赏
  • 举报
回复
var ul1 = document.getElementById('ul1'), lis = ul1.getElementsByTagName('li'); setInterval(function () { lis = ul1.getElementsByTagName('li'); ul1.appendChild(lis[0]); }, 0.1 * 60 * 1000)//这里为了测试,改为6秒,你要10分钟将0.1改为10 改红色那句就好了,只是一个最后变第一个,一个第一变最后而已
街头小贩 2015-09-08
  • 打赏
  • 举报
回复
定时jsonp即可.至于几时几分加载什么数据,让后端去判断就可以了

87,964

社区成员

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

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