漂浮广告代码,同一页面支持多个实例,兼容IE\Firefox,支持W3C XHTML标准
下面来看 wpgcn 的支持多个漂浮广告调用方法:
将广告内容放在容器标签中如div,设置一个id,然后用下面方法调用
- <script type="text/javascript" language="javascript">
- var ad=new AdMove("IDName");
- ad.Run();
- </script>
也可以用下面方法,在页面加载完成时调用,就不用考虑位置了
- <script type="text/javascript" language="javascript">
- addEvent(window,"load",initad);
- function initad(){
- var ad=new AdMove("div的id");
- ad.Run();
- }
- </script>
还有两个方法一般情况下没什么用,有兴趣的可以试试,功能是设置漂浮的起始坐标和方向的,如果省掉的话是随机位置随机方向
ad.SetLocation(x,y)
ad.SetDirection(dirx,diry)
SetDirection 方法挺有意思的,如果某个参数为0则只会横走或竖走了,如果都为0,那么就。。。不动了。
漂浮广告的斜率是每次碰壁后随机改变的,这样就决不可能出现多个广告,起始位置和方向一致导致其中一个总是被挡住,虽然几率很小
以下是多个漂浮广告代码实例,点击 view plain 查看运行效果:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>多个漂浮广告代码,兼容IE、Firefox,支持W3C XHTML标准</title>
- <script type="text/javascript" language="javascript">
- <!–
- //公共脚本文件 main.js
- function addEvent(obj,evtType,func,cap){
- cap=cap||false;
- if(obj.addEventListener){
- obj.addEventListener(evtType,func,cap);
- return true;
- }else if(obj.attachEvent){
- if(cap){
- obj.setCapture();
- return true;
- }else{
- return obj.attachEvent("on" + evtType,func);
- }
- }else{
- return false;
- }
- }
- function getPageScroll(){
- var xScroll,yScroll;
- if (self.pageXOffset) {
- xScroll = self.pageXOffset;
- } else if (document.documentElement && document.documentElement.scrollLeft){
- xScroll = document.documentElement.scrollLeft;
- } else if (document.body) {
- xScroll = document.body.scrollLeft;
- }
- if (self.pageYOffset) {
- yScroll = self.pageYOffset;
- } else if (document.documentElement && document.documentElement.scrollTop){
- yScroll = document.documentElement.scrollTop;
- } else if (document.body) {
- yScroll = document.body.scrollTop;
- }
- arrayPageScroll = new Array(xScroll,yScroll);
- return arrayPageScroll;
- }
- function GetPageSize(){
- var xScroll, yScroll;
- if (window.innerHeight && window.scrollMaxY) {
- xScroll = document.body.scrollWidth;
- yScroll = window.innerHeight + window.scrollMaxY;
- } else if (document.body.scrollHeight > document.body.offsetHeight){
- xScroll = document.body.scrollWidth;
- yScroll = document.body.scrollHeight;
- } else {
- xScroll = document.body.offsetWidth;
- yScroll = document.body.offsetHeight;
- }
- var windowWidth, windowHeight;
- if (self.innerHeight) {
- windowWidth = self.innerWidth;
- windowHeight = self.innerHeight;
- } else if (document.documentElement && document.documentElement.clientHeight) {
- windowWidth = document.documentElement.clientWidth;
- windowHeight = document.documentElement.clientHeight;
- } else if (document.body) {
- windowWidth = document.body.clientWidth;
- windowHeight = document.body.clientHeight;
- }
- if(yScroll < windowHeight){
- pageHeight = windowHeight;
- } else {
- pageHeight = yScroll;
- }
- if(xScroll < windowWidth){
- pageWidth = windowWidth;
- } else {
- pageWidth = xScroll;
- }
- arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
- return arrayPageSize;
- }
- //广告脚本文件 AdMove.js
- /*
- 例子
- <div id="Div2">
- ***** content ******
- </div>
- var ad=new AdMove("Div2");
- ad.Run();
- */
- ////////////////////////////////////////////////////////
- var AdMoveConfig=new Object();
- AdMoveConfig.IsInitialized=false;
- AdMoveConfig.ScrollX=0;
- AdMoveConfig.ScrollY=0;
- AdMoveConfig.MoveWidth=0;
- AdMoveConfig.MoveHeight=0;
- AdMoveConfig.Resize=function(){
- var winsize=GetPageSize();
- AdMoveConfig.MoveWidth=winsize[2];
- AdMoveConfig.MoveHeight=winsize[3];
- AdMoveConfig.Scroll();
- }
- AdMoveConfig.Scroll=function(){
- var winscroll=getPageScroll();
- AdMoveConfig.ScrollX=winscroll[0];
- AdMoveConfig.ScrollY=winscroll[1];
- }
- addEvent(window,"resize",AdMoveConfig.Resize);
- addEvent(window,"scroll",AdMoveConfig.Scroll);
- function AdMove(id){
- if(!AdMoveConfig.IsInitialized){
- AdMoveConfig.Resize();
- AdMoveConfig.IsInitialized=true;
- }
- var obj=document.getElementById(id);
- obj.style.position="absolute";
- var W=AdMoveConfig.MoveWidth-obj.offsetWidth;
- var H=AdMoveConfig.MoveHeight-obj.offsetHeight;
- var x = W*Math.random(),y = H*Math.random();
- var rad=(Math.random()+1)*Math.PI/6;
- var kx=Math.sin(rad),ky=Math.cos(rad);
- var dirx = (Math.random()<0.5?1:-1), diry = (Math.random()<0.5?1:-1);
- var step = 1;
- var interval;
- this.SetLocation=function(vx,vy){x=vx;y=vy;}
- this.SetDirection=function(vx,vy){dirx=vx;diry=vy;}
- obj.CustomMethod=function(){
- obj.style.left = (x + AdMoveConfig.ScrollX) + "px";
- obj.style.top = (y + AdMoveConfig.ScrollY) + "px";
- rad=(Math.random()+1)*Math.PI/6;
- W=AdMoveConfig.MoveWidth-obj.offsetWidth;
- H=AdMoveConfig.MoveHeight-obj.offsetHeight;
- x = x + step*kx*dirx;
- if (x < 0){dirx = 1;x = 0;kx=Math.sin(rad);ky=Math.cos(rad);}
- if (x > W){dirx = -1;x = W;kx=Math.sin(rad);ky=Math.cos(rad);}
- y = y + step*ky*diry;
- if (y < 0){diry = 1;y = 0;kx=Math.sin(rad);ky=Math.cos(rad);}
- if (y > H){diry = -1;y = H;kx=Math.sin(rad);ky=Math.cos(rad);}
- }
- this.Run=function(){
- var delay = 25;//移动速度
- interval=setInterval(obj.CustomMethod,delay);
- obj.onmouseover=function(){clearInterval(interval);}
- obj.onmouseout=function(){interval=setInterval(obj.CustomMethod, delay);}
- }
- }
- //–>
- </script>
- </head>
- <body>
- 本实例由布落格(Abo Blog)整理,引用请注明出自<a href="/UploadFiles/200811/20081105eogsi5.gif" alt="Baidu Logo" width="270" height="129" border="0" /></a></span>
- <span id="ad2"><a href="/UploadFiles/200811/20081105uwfr4b.gif" alt="Google Logo" width="176" height="77" border="0" /></a></span>
- <script type="text/javascript">
- <!–
- var ad1=new AdMove("ad1");
- ad1.Run();
- var ad2=new AdMove("ad2");
- ad2.Run();
- ad2.SetLocation(50,100)
- ad2.SetDirection(1,1)
- //–>
- </script>
- </body>
- </html>
随手把 Rimifon 的图片漂浮广告源代码也贴一下:
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title>Rimifon 多实例漂浮广告源代码</title>
- <script language="javascript" type="text/javascript">
- var Rimifon = {
- "Ads" : new Object,
- "NewFloatAd" : function(imgUrl, strLink)
- {
- var ad = document.createElement("a");
- ad.DirV = true;
- ad.DirH = true;
- ad.AutoMove = true;
- ad.Image = new Image;
- ad.Seed = Math.random();
- ad.Timer = setInterval("Rimifon.Float(" + ad.Seed + ")", 50);
- this.Ads[ad.Seed] = ad;
- ad.Image.Parent = ad;
- ad.style.position = "absolute";
- ad.style.left = 0;
- ad.style.top = 0;
- ad.Image.src = imgUrl;
- ad.Image.onmouseover = function(){this.Parent.AutoMove = false;}
- ad.Image.onmouseout = function(){this.Parent.AutoMove = true;}
- if(strLink)
- {
- ad.href = strLink;
- ad.Image.border = 0;
- ad.target = "_blank";
- }
- ad.appendChild(ad.Image);
- document.body.appendChild(ad);
- return ad;
- },
- "Float" : function(floatId)
- {
- var ad = this.Ads[floatId];
- if(ad.AutoMove)
- {
- var curLeft = parseInt(ad.style.left);
- var curTop = parseInt(ad.style.top);
- if(ad.offsetWidth + curLeft > document.body.clientWidth + document.body.scrollLeft – 1)
- {
- curLeft = document.body.scrollLeft + document.body.clientWidth – ad.offsetWidth;
- ad.DirH = false;
- }
- if(ad.offsetHeight + curTop > document.body.clientHeight + document.body.scrollTop – 1)
- {
- curTop = document.body.scrollTop + document.body.clientHeight – ad.offsetHeight;
- ad.DirV = false;
- }
- if(curLeft < document.body.scrollLeft)
- {
- curLeft = document.body.scrollLeft;
- ad.DirH = true;
- }
- if(curTop < document.body.scrollTop)
- {
- curTop = document.body.scrollTop;
- ad.DirV = true;
- }
- ad.style.left = curLeft + (ad.DirH ? 1 : -1) + "px";
- ad.style.top = curTop + (ad.DirV ? 1 : -1) + "px";
- }
- }
- }
- </script>
- </head>
- <body>
- <div style="height:800px"></div>
- <script language="javascript" type="text/javascript">
- Rimifon.NewFloatAd("/UploadFiles/200811/200811051c0sv8.gif", "http://www.baidu.com/");
- var ad = Rimifon.NewFloatAd("/UploadFiles/200811/200811051851nb.gif","http://www.google.com/");
- ad.style.left = 400;
- ad.style.top = 300;
- ad.Image.width = 176;
- ad.Image.height = 77;
- </script>
- </body>
- </html>
评论前必须登录!
注册