玖纳米网络拥有7年专业网站建设服务经验
网站建设技术
当前位置:首页 > 服务与支持 > 网站建设技术 > 正文
符合W3C声明的漂浮广告代码
作者:玖纳米网络编辑部 来源:原创 日期:2013-2-25 5:50:06 人气:189

前几天,让团队的小蔡找了个漂浮广告JS代码。在本地测试都是正常的(我们简单的加上代码,做了一个很长很长的DIV)。我把该代码封装到js文件中,传到网站上。可是,效果和本地不一样,一直往下飘~~~~~ 我们换了很多代码,都是一样的。最后,我烦了:就那样吧。

可是客户不依啊,非要改,早上抽时间找找问题。我把静态页面保存在本地测试,发现还是有问题。我想起,网站用的是CSS+DIV的方式。于是换掉文件头,问题消失了!再查,发现是网站头部的W3C声明导致代码失效:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

这串代码是不能删除的,否则CSS样式会出问题。

网站是用xhtml+css排版的,该声明必须放置。在网络上搜索了一圈,有人给出了解决方法。
“声明直接导致document.body.scrollTop永远等于0,body Scroll永远也不会引发。解决方法:把document.body用document.documentElement替换掉”我打开漂浮源代码,调试成功。一下是网站使用的符合W3C声明的漂浮广告代码,也共享出来和大家分享!

/*代码开始*/

document.write ("<DIV id=img1 style='Z-INDEX: 100; LEFT: 2px; WIDTH: 59px; POSITION: absolute; TOP: 43px; HEIGHT: 61px; ")
document.write (" visibility: visible;'>           ")
document.write (" <a href='newst_help.asp' target='_blank'>      ")
document.write ("  <img src='images/ad/02.gif'      ")

document.write (" </a></DIV>           ")    


var xPos = 300;
var yPos = 200;
var step = 1;
var delay = 80;
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var interval;
img1.style.top = yPos;
function changePos()
{
width = document.documentElement.clientWidth;
height = document.documentElement.clientHeight;
Hoffset = img1.offsetHeight;
Woffset = img1.offsetWidth;
img1.style.left = xPos + document.documentElement.scrollLeft;
img1.style.top = yPos + document.documentElement.scrollTop;
if (yon)
 {yPos = yPos + step;}
else
 {yPos = yPos - step;}
if (yPos < 0)
 {yon = 1;yPos = 0;}
if (yPos >= (height - Hoffset))
 {yon = 0;yPos = (height - Hoffset);}
if (xon)
 {xPos = xPos + step;}
else
 {xPos = xPos - step;}
if (xPos < 0)
 {xon = 1;xPos = 0;}
if (xPos >= (width - Woffset))
 {xon = 0;xPos = (width - Woffset);   }
}

function start()
 {
  img1.visibility = "visible";
 interval = setInterval('changePos()', delay);
}
function pause_resume()
{
 if(pause)
 {
  clearInterval(interval);
  pause = false;}
 else
 {
  interval = setInterval('changePos()',delay);
  pause = true;
  }
 }
start();


/*代码结束*/

使用方法:

新建一个文本文件,把以上代码拷贝,并保存为js文件。比如 ad_pp.js

在网页中,添加一个js文件导入,如下:

<script src="ad_pp.js" type="text/javascript"></script>

我习惯加到网站代码末尾。

本文网址:http://www.9nm.cn/Support/webdesign/568.html