惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
G
GRAHAM CLULEY
S
Securelist
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Spread Privacy
Spread Privacy
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
T
Tailwind CSS Blog
博客园_首页
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
O
OpenAI News
J
Java Code Geeks
T
Tenable Blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
S
Security @ Cisco Blogs
The GitHub Blog
The GitHub Blog
T
Threatpost
月光博客
月光博客
H
Heimdal Security Blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Y
Y Combinator Blog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
D
Docker
Google Online Security Blog
Google Online Security Blog
D
DataBreaches.Net
V
Visual Studio Blog
H
Help Net Security

博客园 - Sangplus

[转]C#单进程解决方案 extern alias 英语面试常用语 【转】FLASH轮换广告源码 让Enumerable可以具有each方式的语法。 C#之扩展方法学习 使用非托管代码进行字节数组的快速拷贝 c#复习——虚方法、重写方法和抽象方法(官方解释) vs2005工具栏重置 一种实用的页面传参方法 所有HTTP状态代码及其定义 ASP.NET验证控件祥解[转] C#制作WinForm控件[转] 关于web.config的读写管理 关于SqlServer2005开发者版不同电脑之间的连接问题 JavaScript中有时候需要给this起一个别名。 不知不觉代码已经超过1万行了 关于RequiredFieldValidator的怪异现象 javascript添加下拉列表和速度有关系吗?
走马灯的js代码
Sangplus · 2010-02-21 · via 博客园 - Sangplus

近来做一网站,需要用到走马灯效果,根据网上结果,整理代码如下,以方便以后直接使用。

在js文件中加入如下函数:

代码


function Marquee(objID,vh,w,h,sp){
    var objOri=document.getElementById(objID);
    var objHTML=objOri.outerHTML;
    if(!objHTML)
    {
        var div = document.createElement("div");
        div.appendChild( objOri.cloneNode(true));
        objHTML = div.innerHTML;
    }
    var MarqueeFrame="MarqueeFrame_"+objID;
    var MarqueeObj="MarqueeObj_"+objID;
    var MarqueeObjPost="MarqueeObjPost_"+objID;
    var str="
<div id="+MarqueeFrame+" style=\"OVERFLOW: hidden; WIDTH: "+w+"px; HEIGHT: "+h+"px\">";
    str+="
<table border=0 align=center cellpadding=0 cellspacing=0 cellspace=0><tr>";
    str+="
<td id="+MarqueeObj+" valign=top >"+objHTML+"</td>";
    str+=vh=="v"?"
</tr><tr>":"";
    str+="
<td id="+MarqueeObjPost+">"+objHTML+"</td></tr></table></div>";
    
    //objOri.outerHTML=str;
    //FF不支持outerHTML,可以改用一下方法,不过需要jQuery1.3.2支持
    $(objOri).replaceWith(str);
    
    var mf=document.getElementById(MarqueeFrame);
    var obj=document.getElementById(MarqueeObj);
    var objPost=document.getElementById(MarqueeObjPost);
    
    var MyMar=setInterval(function(){InternalMarquee(mf,obj,objPost,vh)},sp);
    mf.onmouseover=function() {clearInterval(MyMar)};
    mf.onmouseout=function() {MyMar=setInterval(function(){InternalMarquee(mf,obj,objPost,vh)},sp)};
}

function InternalMarquee(mf,obj,objPost,vh)
{
    if(vh=="v")
    {
        if(objPost.offsetTop-mf.scrollTop

<=0){
            mf.scrollTop-
=obj.offsetHeight;
        
}
        else{
            mf.scrollTop++;
        }
    }
    else
    {
        if(objPost.offsetLeft-mf.scrollLeft<
=0){
            
mf.scrollLeft-=obj.offsetWidth;
        
}
        else{
            mf.scrollLeft++;
        }
    }
}

在页面中引入该js文件:

1     <script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
2     <script src="Scripts/Script.js" type="text/javascript"></script>

页面中的调用方法:

代码

 1 
 2     <div id="Div1" style="white-space:nowrap;">
 3     <img alt="" src="Images/sy-mxhy-04.gif"/>
 4     <img alt="" src="Images/sy-mxhy-05.gif" />
 5     </div>
 6     <div id="test">
 7     <div id="Div2">
 8     <img alt="" src="Images/sy-mxhy-04.gif"/>
 9     <img alt="" src="Images/sy-mxhy-05.gif" />
10     </div>
11     </div>   
12     <table id="Div3">
13     <tr>
14     <td>
15     <img alt="" src="Images/sy-mxhy-04.gif"/>
16     </td>
17     <td>
18     <img alt="" src="Images/sy-mxhy-05.gif" />
19     </td>
20     </tr>
21     </table>
22     <div id="div4">中华人民共和国</div>
23     <script type="text/javascript">
24     Marquee("Div1","h",145,125,3);
25     Marquee("Div2","v",145,30,3);
26     Marquee("Div3","h",145,126,3);
27     Marquee("Div4","h",10,126,20);
28     </script>

注意事项:

  当进行水平滚动时,应该由使用者设置目标元素宽度,或在目标元素中加入white-space:nowrap式样,以防止内容本身换行导致的效果失败

  宽度(或高度)设置不应超过目标元素本身的宽度或高度,否则没有效果

  本函数中仅有两个方向,在使用中可以适当修改vh相关代码来增加其他动画方向。