这是个问题,在我们做网页的时候,页面有漂浮广告,有下拉框,当漂浮广告经过下拉框时,问题就出现了,看了让人觉得特别扭,下面是解决办法,在层<div>中加一个<iframe>,把iframe的高度和宽度设为层<div>同样的高度和宽度,记得一定给iframe高度和宽度,不然效果就出不来噢,当然你可以试试改变它高度和宽度会是什么样的效果,这个就不多说了,实践了就明白了,不多说了 下面是我试验通过的代码:
用这个例子之前还有二个js文件用于图片漂浮的在IE,FF下通用(下面的例子中引用了这两个js文件):
1。Main.js
//公共脚本文件 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;
}
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;
}
2.AdMove.js
//广告脚本文件 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 = 10;
interval=setInterval(obj.CustomMethod,delay);
obj.οnmοuseοver=function(){clearInterval(interval);}
obj.οnmοuseοut=function(){interval=setInterval(obj.CustomMethod, delay);}
}
}
/*
例子
<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 = 10;
interval=setInterval(obj.CustomMethod,delay);
obj.οnmοuseοver=function(){clearInterval(interval);}
obj.οnmοuseοut=function(){interval=setInterval(obj.CustomMethod, delay);}
}
}
下面是测试页面test.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns=" [url]http://www.w3.org/1999/xhtml[/url]">
<html xmlns=" [url]http://www.w3.org/1999/xhtml[/url]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>信用苍南</title>
<script src="Main.js"></script>
<script src="AdMove.js"></script>
</head>
<body>
<div style="height:50px">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:50px;text-align:center">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:80px;text-align:right">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:50px">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:50px;text-align:center">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:80px;text-align:right">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<!--漂浮广告-->
<div id="Ad"><img src=" [url]http://news.xinhuanet.com/sports/2007-12/11/xinsrc_3321204110933593363511.jpg[/url] " width="256"; height="126"/>
<iframe src="" style="position:absolute;visibility:inherit; top:0px; left:0px; width:256px; height:126px; z-index:-1;opacity:.0;filter: alpha( opacity=0 ); -moz-opacity: 0;"></iframe>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>信用苍南</title>
<script src="Main.js"></script>
<script src="AdMove.js"></script>
</head>
<body>
<div style="height:50px">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:50px;text-align:center">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:80px;text-align:right">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:50px">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:50px;text-align:center">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<div style="height:80px;text-align:right">
<label for="textfield2"> 选 择:</label>
<select name="searchtype">
<option value="newstitle">--全 文--</option>
<option value="newstitle">--标 题--</option>
<option value="newscontent">--内 容--</option>
</select>
<select name="layout">
<option value="all">整个网站</option>
</select>
</div>
<!--漂浮广告-->
<div id="Ad"><img src=" [url]http://news.xinhuanet.com/sports/2007-12/11/xinsrc_3321204110933593363511.jpg[/url] " width="256"; height="126"/>
<iframe src="" style="position:absolute;visibility:inherit; top:0px; left:0px; width:256px; height:126px; z-index:-1;opacity:.0;filter: alpha( opacity=0 ); -moz-opacity: 0;"></iframe>
</div>
<script type="text/javascript">
<!--
var ad1=new AdMove("Ad");
ad1.Run();
-->
</script>
<script type="text/javascript">
<!--
var ad1=new AdMove("Ad");
ad1.Run();
-->
</script>
</body>
</html>
转载于:https://blog.51cto.com/quitecao/128626