基于JavaScript代码实现随机漂浮图片广告
在网上有很多这样的代码,不过未必符合W3C标准,因为在头部加上<!DOCTYPEhtml>类似标签之后,漂浮效果就会失效,下面分享一个符合标准的漂浮代码,使需要的朋友免去大量改造代码的繁琐。
代码一:
代码如下:
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8">
<metaname="author"content="http://www.softwhy.com/"/>
<title>漂浮广告代码</title>
<styletype="text/css">
#thediv
{
z-index:100;
position:absolute;
top:43px;
left:2px;
height:100px;
width:100px;
background-color:red;
}
</style>
<scripttype="text/javascript">
varxPos=300;
varyPos=200;
varstep=1;
vardelay=8;
varheight=0;
varHoffset=0;
varWoffset=0;
varyon=0;
varxon=0;
varpause=true;
varinterval;
functionchangePos()
{
width=document.documentElement.clientWidth;
height=document.documentElement.clientHeight;
Hoffset=thediv.offsetHeight;
Woffset=thediv.offsetWidth;
thediv.style.left=(xPos+document.body.scrollLeft+document.documentElement.scrollLeft)+"px";
thediv.style.top=(yPos+document.body.scrollTop+document.documentElement.scrollTop)+"px";
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);
}
}
functionstart()
{
thediv.visibility="visible";
interval=setInterval('changePos()',delay);
}
functionpause_resume()
{
if(pause)
{
clearInterval(interval);
pause=false;
}
else
{
interval=setInterval(changePos,delay);
pause=true;
}
}
window.onload=function()
{
thediv.style.top=yPos;
start();
}
</script>
</head>
<body>
<divid="thediv"></div>
</body>
</html>
以上代码实现了我们的要求,红色div块能够能够在网页中随机漂浮,并且兼容各个浏览器。代码的实现过程这里就不多介绍了,如有任何问题可以跟帖留言。
代码二:JS随机漂浮广告代码具体实例
代码如下:
<!--随机漂浮广告开始-->
<divid="float"style="position:absolute;z-index:3;(我建议大家把这里设为100,这样浮动图就不会被遮住了)left:512px;width:83px;top:9px;height:53px;">
<imgsrc="piaofu.gif"width="100"height="50"></div>
<scripttype="text/javascript">
<!--随机漂浮广告-->
varxPos=0,yPos=0;//x,y轴坐标
varxon=0;//图片在x轴移动方向
varyon=0;//图片在y轴移动方向
varstep=1;//移动距离
varimg=document.getElementByIdx_x("float");//图片层
functionfloatP()
{
varwidth=document.body.clientWidth;//浏览器宽度
varheight=document.body.clientHeight;//浏览器高度
varHoffset=img.offsetHeight;//图片高度
varWoffset=img.offsetWidth;//图片宽度
img.style.left=xPos+document.body.scrollLeft;//图片距离浏览器左侧位置
img.style.top=yPos+document.body.scrollTop;//图片距离浏览器顶端位置
if(yon==0){
yPos=yPos+step;//图片在y轴方向上下移动
}else{
yPos=yPos-step;
}
if(yPos<0){//飘到顶端,沿y轴向下移动
yon=0;
yPos=0;
}
if(yPos>=(height-Hoffset)){//飘到低端,沿y轴向上移动
yon=1;
yPos=(height-Hoffset);
}
if(xon==0){//x轴向右移动
xPos=xPos+step;
}else{
xPos=xPos-step;//x轴向左移动
}
if(xPos<0){//飘到左侧时沿x轴向右移动
xon=0;
xPos=0;
}
if(xPos>=(width-Woffset)){//飘到右侧时沿x轴向左移动
xon=1;
xPos=(width-Woffset);
}
setTimeout("floatP()",30);//定时调用。
}
window.onload=floatP();
</script>
代码如下:
<script>
varx=50,y=60//浮动层的初始位置,分别对应层的初始X坐标和Y坐标
varxin=true,yin=true//判断层的X坐标和Y坐标是否在在控制范围之内,xin为真是层向右移动,否则向左;yin为真是层向下移动,否则向上
varstep=1//层移动的步长,值越大移动速度越快
vardelay=10//层移动的时间间隔,单位为毫秒,值越小移动速度越快
varobj=document.getElementByIdx_x("float")//捕获id为ad的层作为漂浮目标
functionfloatAD(){
varL=T=0//层移动范围的左边界(L)和上边界(T)坐标
varR=document.body.clientWidth-obj.offsetWidth//层移动的右边界
varB=document.body.clientHeight-obj.offsetHeight//层移动的下边界
obj.style.left=x+document.body.scrollLeft//更新层的X坐标,实现X轴方向上的运动;document.body.scrollLeft为文档区域的滚动条向右拉的距离,以保证在滚动条右拉时层仍在可见范围内
obj.style.top=y+document.body.scrollTop//更新层的Y坐标,实现Y轴方向上的运动;document.body.scrollTop为文档区域的滚动条向下拉的距离,以保证在滚动条下拉时层仍在可见范围内
x=x+step*(xin?1:-1)//通过判断层的范围决定层在X轴上的运动方向
if(x<L){xin=true;x=L}//层超出左边界时的处理
if(x>R){xin=false;x=R}//层超出右边界时的处理
y=y+step*(yin?1:-1)//通过判断层的范围决定层在Y轴上的运动方向
if(y<T){yin=true;y=T}//层超出上边界时的处理
if(y>B){yin=false;y=B}//层超出下边界时的处理
}
varitl=setInterval("floatAD()",delay)//每delay秒执行一次floatAD函数
obj.onmouseover=function(){clearInterval(itl)}//层在鼠标移上时清除上面的间隔事件,实现层在的鼠标移上时停止运动的效果
obj.onmouseout=function(){itl=setInterval("floatAD()",delay)}//层在鼠标移开时开始间隔事件,实现层在的鼠标移开时继续运动的效果
</script>
毛票票友情提醒大家需要注意事项:
在网页中插入Flash和浮动广告,你会发现在浮动广告浮到Flash处时会在下面,我们如何解决这个问题呢,其它很简单
在flash代码的位置加入下面语句就可以了
<paramname="wmode"value="opaque">
例:
如果下面是flash所在位置的代码:
代码如下:
<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"width="780"height="165"> <paramname="movie"value="banner1.swf"> <paramname="quality"value="high"> <paramname="menu"value="false"> <paramname="wmode"value="opaque"><!--主要是这句--> <embedsrc="banner1.swf"quality="high"pluginspage="http://www.macromedia.com/go/getflashplayer"type="application/x-shockwave-flash"width="780"height="165"></embed> </object>