js单行消息滚动代码,可添加无数个, 这个代码还能精简么??只要滚动

qq_21461715 2016-04-21 08:31:02
js单行消息滚动代码,可添加无数个, 这个代码还能精简么??只要滚动
看代码里还可以设置 定义一些常用而且要经常用到的变量 这个变量是不也可以删除了 做精简.
求大神帮忙把以下代码精简下哦

<script> 
var marqueeContent=new Array(); //滚动主题
marqueeContent[0]='学习编程,欢迎访问1';
marqueeContent[1]='学习编程,欢迎访问2';
marqueeContent[2]='学习编程,欢迎访问3';
marqueeContent[3]='学习编程,欢迎访问4';
marqueeContent[4]='学习编程,欢迎访问5';
var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量
var marqueeId=0;
function initMarquee() {
var str=marqueeContent[0];
document.write('<div id=marqueeBox style="overflow:hidden;height:22px" ><div>'+str+'</div></div>');
marqueeId++;
setInterval("startMarquee()",1500);
}
function startMarquee() {
var str=marqueeContent[marqueeId];
marqueeId++;
if(marqueeId>=marqueeContent.length) marqueeId=0;
if(marqueeBox.childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
marqueeBox.appendChild(nextLine);
}
else {
marqueeBox.childNodes[0].innerHTML=str;
marqueeBox.appendChild(marqueeBox.childNodes[0]);
marqueeBox.scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",10);
}
function scrollMarquee() {
marqueeBox.scrollTop++;
if(marqueeBox.scrollTop%marqueeHeight==marqueeHeight){
clearInterval(marqueeInterval[1]);
}
}
initMarquee();
</script>
...全文
156 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_21461715 2016-04-25
  • 打赏
  • 举报
回复
没有人来解答下么 !!!
qq_21461715 2016-04-22
  • 打赏
  • 举报
回复
引用 楼主 qq_21461715 的回复:
js单行消息滚动代码,可添加无数个, 这个代码还能精简么??只要滚动 看代码里还可以设置 定义一些常用而且要经常用到的变量 这个变量是不也可以删除了 做精简. 求大神帮忙把以下代码精简下哦
<script> 
var marqueeContent=new Array(); //滚动主题 
marqueeContent[0]='学习编程,欢迎访问1'; 
marqueeContent[1]='学习编程,欢迎访问2'; 
marqueeContent[2]='学习编程,欢迎访问3'; 
marqueeContent[3]='学习编程,欢迎访问4'; 
marqueeContent[4]='学习编程,欢迎访问5'; 
var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量 
var marqueeId=0; 
function initMarquee() { 
var str=marqueeContent[0]; 
document.write('<div id=marqueeBox style="overflow:hidden;height:22px" ><div>'+str+'</div></div>'); 
marqueeId++; 
setInterval("startMarquee()",1500); 
} 
function startMarquee() { 
var str=marqueeContent[marqueeId]; 
marqueeId++; 
if(marqueeId>=marqueeContent.length) marqueeId=0; 
if(marqueeBox.childNodes.length==1) { 
var nextLine=document.createElement('DIV'); 
nextLine.innerHTML=str; 
marqueeBox.appendChild(nextLine); 
} 
else { 
marqueeBox.childNodes[0].innerHTML=str; 
marqueeBox.appendChild(marqueeBox.childNodes[0]); 
marqueeBox.scrollTop=0; 
} 
clearInterval(marqueeInterval[1]); 
marqueeInterval[1]=setInterval("scrollMarquee()",10); 
} 
function scrollMarquee() { 
marqueeBox.scrollTop++; 
if(marqueeBox.scrollTop%marqueeHeight==marqueeHeight){ 
clearInterval(marqueeInterval[1]); 
} 
} 
initMarquee(); 
</script>
这个并没有显示的 ,是不是代码删简有错误的 ...我用了另外一个办法..但是每条记录没有停顿,是不是可以让每条记录停顿下呢??
<DIV id="d" style="overflow:hidden;height:14px; font-size:12px;color:#fff"><DIV id="d1" >
李***:已成功提现¥125.18元<BR>t***:已成功提现¥125.18元<BR>爱***:已成功提现¥125.18元<BR>美***:已成功提现¥125.18元
</DIV><DIV id=d2></DIV></DIV>
<SCRIPT>function M1(){d2.offsetTop-d.scrollTop<=0?d.scrollTop-=d1.offsetHeight:d.scrollTop++}d2.innerHTML=d1.innerHTML,setInterval(M1,200);</SCRIPT>
scscms太阳光 2016-04-21
  • 打赏
  • 举报
回复
    /*
    * 原:不断重新生成节点,性能不好。
    * 改:把数据一次性生成固定节点,滚动即可。*/
    var array = [
        '学习编程,欢迎访问1',
        '学习编程,欢迎访问2',
        '学习编程,欢迎访问3',
        '学习编程,欢迎访问4',
        '学习编程,欢迎访问5'
    ];
    array.push(array[0]);//复制一条数据
    var div = document.createElement("div"),sept = -1,length = array.length;
    div.innerHTML = '<div>'+(array.join('</div><div>'))+'</div>';
    div.style.cssText = "overflow:hidden;height:22px";
    document.body.appendChild(div);
    setInterval(function(){
        ++sept >= length - 1 &&(sept = 0);
        div.scrollTop = sept * 22;
        var i = 0;
        !(function(){
            ++i < 20 && (setTimeout(arguments.callee,10),div.scrollTop += 1);
        })();
    },1500);

87,922

社区成员

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

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