zoukankan      html  css  js  c++  java
  • JS新闻滚动效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title> code.js.cn </title>
    <style>
    a{display:block;font-size:15px;line-height:18px;text-decoration:none;color:#333;font-family:Arial;font-size:12px;}
    .shell{
        background:url(http://bbs.blueidea.com/images/common/xml.gif) no-repeat 4px 5px;
        border:1px solid #aaa; 
        400px;
        padding:3px 2px 2px 20px; 
    }
    #div1{
        height:18px;
        overflow:hidden;
    }
    </style>
    </head>
    <body>
    <div class="shell">
        <div id="div1">
          <a href="javascript:">请教高手帮我看下这段代码 FLASH显示不了</a>
          <a href="javascript:">请教在UTF-8编辑下的符号显示问题 </a>
          <a href="javascript:">jquery做的一个滑动效果,不知如何增加延迟,现在太灵敏了</a>
          <a href="javascript:">技术研究-QQ09版按钮渐显渐隐的由来 </a>
          <a href="javascript:">javascript读取Json数据并分页显示,支持键盘和滚轮翻页 </a>
          <a href="javascript:">腾讯网奇怪的PNG文件,拜师以求解惑</a>
          <a href="javascript:">更新lhgdialog-ver2.0.1弹出窗口组件 2009-7-18 </a>
        </div> 
    <div>
    </body>
    <script>
    var box=document.getElementById("div1"),can=true;
    box.innerHTML+=box.innerHTML;
    box.onmouseover=function(){can=false};
    box.onmouseout=function(){can=true};
    new function (){
        var stop=box.scrollTop%18==0&&!can;
        if(!stop)box.scrollTop==parseInt(box.scrollHeight/2)?box.scrollTop=0:box.scrollTop++;
        setTimeout(arguments.callee,box.scrollTop%18?10:1500);
    };
    </script>
    </html>

    下面这2个代码更少:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title> code.js.cn </title>
    <style>
    a{display:block;font-size:15px;line-height:18px;text-decoration:none;color:#333;font-family:Arial;font-size:12px;}
    .shell{
        background:url(http://bbs.blueidea.com/images/common/xml.gif) no-repeat 4px 5px;
        border:1px solid #aaa; 
        400px;
        padding:3px 2px 2px 20px; 
    }
    #div1{
        height:18px;
        overflow:hidden;
    }
    </style>
    </head>
    <body>
    <div class="shell">
        <div id="div1">
          <a href="javascript:">请教高手帮我看下这段代码 FLASH显示不了</a>
          <a href="javascript:">请教在UTF-8编辑下的符号显示问题 </a>
          <a href="javascript:">jquery做的一个滑动效果,不知如何增加延迟,现在太灵敏了</a>
          <a href="javascript:">技术研究-QQ09版按钮渐显渐隐的由来 </a>
          <a href="javascript:">javascript读取Json数据并分页显示,支持键盘和滚轮翻页 </a>
          <a href="javascript:">腾讯网奇怪的PNG文件,拜师以求解惑</a>
          <a href="javascript:">更新lhgdialog-ver2.0.1弹出窗口组件 2009-7-18 </a>
        </div> 
    <div>
    </body>
    <script>
    var c,_=Function;
    with(o=document.getElementById("div1")){ innerHTML+=innerHTML; onmouseover=_("c=1"); onmouseout=_("c=0");}
    (F=_("if(#%18||!c)#++,#%=o.scrollHeight>>1;setTimeout(F,#%18?10:1500);".replace(/#/g,"o.scrollTop")))();
    </script>
    </html>

    不用字符串生成function是不行的,缩的就是这个部分代码里面重复的字符。
    其实还真没必要用with,

    把with(){}换成四个“o.”,代码长度不是只差一个“;”么?再把重复的“o.innerHTML”给缩了,就更省字了。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title> code.js.cn </title>
    <style>
    a{display:block;font-size:15px;line-height:18px;text-decoration:none;color:#333;font-family:Arial;font-size:12px;}
    .shell{
        background:url(http://bbs.blueidea.com/images/common/xml.gif) no-repeat 4px 5px;
        border:1px solid #aaa; 
        400px;
        padding:3px 2px 2px 20px; 
    }
    #div1{
        height:18px;
        overflow:hidden;
    }
    </style>
    </head>
    <body>
    <div class="shell">
        <div id="div1">
          <a href="javascript:">请教高手帮我看下这段代码 FLASH显示不了</a>
          <a href="javascript:">请教在UTF-8编辑下的符号显示问题 </a>
          <a href="javascript:">jquery做的一个滑动效果,不知如何增加延迟,现在太灵敏了</a>
          <a href="javascript:">技术研究-QQ09版按钮渐显渐隐的由来 </a>
          <a href="javascript:">javascript读取Json数据并分页显示,支持键盘和滚轮翻页 </a>
          <a href="javascript:">腾讯网奇怪的PNG文件,拜师以求解惑</a>
          <a href="javascript:">更新lhgdialog-ver2.0.1弹出窗口组件 2009-7-18 </a>
        </div> 
    <div>
    </body>
    <script>
    var c,_=Function,o=document.getElementById("div1"),d=o.innerHTML;
    d+=d;o.onmouseover=_("c=1");o.onmouseout=_("c=0");
    (F=_("if(#%18||!c)#++,#%=o.scrollHeight>>1;setTimeout(F,#%18?10:1500);".replace(/#/g,"o.scrollTop")))();
    </script>
    </html>
    var c,_=Function;
    with(o=document.getElementById("div1")){ innerHTML+=innerHTML; onmouseover=_("c=1"); onmouseout=_("c=0");}
    (F=_("if(#%18||!c)#++,#%=o.scrollHeight>>1;setTimeout(F,#%18?10:1500);".replace(/#/g,"o.scrollTop")))();
    
    var c;
    var _=Function;// “_”是变量名,按最短的名字起就是了
    var o=document.getElementById("div1"); // 这里使用变量前,没有声明,o就是全局变量了,不推荐大*这么做
    
    
    // 把with语句分解了,这样做了以后,代码的可读性和可维护性更好
    o.innerHTML+=o.innerHTML;
    /*
    * 推荐这么写,最常见的方法,就不多解释了
    * o.onmouseover = function(){c=1}; 
    */
    o.onmouseover = _("c=1"); // 相当域 new Function("c=1"); 这个就是我说的不推荐大*这么创建函数的地方,执行效率极低。
    o.onmouseout = _("c=0");
    
    // F没有先声明,也是new Function创建函数,翻译一下
    /*
    * (function F(){
    *     if(o.scrollTop%18||!c){
    *         o.scrollTop++;
    *         o.scrollTop%=o.scrollHeight>>1;
    *         setTimeout(F,#%18?10:1500); // 没有滚完一行,滚动的时间间隔为10ms,滚完一行,停1.5秒再继续滚到下一行
    *     }
    * })() // 一个自执行的闭包函数
    */
    (F=_("if(#%18||!c)#++,#%=o.scrollHeight>>1;setTimeout(F,#%18?10:1500);".replace(/#/g,"o.scrollTop")))();
    

      

     

    新闻向上滚动:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>新闻向上滚动</title>
    <style type="text/css">
    * { padding:0; margin:0; }
    #list { 400px; height:100px; margin:50px auto; position:relative; overflow:hidden; }
    #list ul { position:absolute; top:0; }
    #list li { height:22px; line-height:22px; }
    #list li a { color:#333; text-decoration:none; font-size:14px; }
    #list a:hover { text-decoration:underline; color:#000; }
    </style>
    </head>
    
    <body>
    
    
    
    <div id="list">
        <ul>
          <li><a href="#">日本东京都完成钓鱼岛海域非法调查 </a></li>
          <li><a href="#">北京规定买白加黑等药品需身份证</a></li>
          <li><a href="#">江苏滨海一民警坠楼身亡 死前刚被局纪委约谈</a></li>
          <li><a href="#">央视评论员陶伟追悼会举行 生前众好友冒雨送别</a></li>
          <li><a href="#">***:已建成保障房要尽快入市巩固调控</a></li>
        </ul>
    </div>
    
    
    
    
    <script type="text/javascript">
    window.onload = function()
    {
        var list = document.getElementById("list").getElementsByTagName("ul")[0];
        var timer = null;
        
        list.innerHTML += list.innerHTML;
        function marquee()
        {
            list.style.top = list.offsetTop - 3 + "px";
            if(list.offsetTop < -list.offsetHeight/2)
            {
                list.style.top = "0px";
            }
        }
        timer = setInterval(marquee,50);
        list.onmouseover = function() { clearInterval(timer); }
        list.onmouseout = function() { timer = setInterval(marquee,30); }
    }
    </script>
    
    </body>
    </html>
  • 相关阅读:
    GNU GPL介绍
    《Getting Started with WebRTC》第一章 WebRTC介绍
    进一步解 apt-get 的几个命令
    状态模式----C++实现
    boost库asio详解1——strand与io_service区别
    Timer.5
    Timer.4
    Timer.3
    MFC定时器
    boost.asio系列——Timer
  • 原文地址:https://www.cnblogs.com/huanlei/p/2591665.html
Copyright © 2011-2022 走看看