JS代码不兼容火狐,这个JS主要是漂浮在网页中的一个广告图?请高手帮帮忙怎么办?下面是JS代码。谢谢。
varxPos=300;varyPos=200;varstep=1;vardelay=30;varheight=0;varHoffset=0;varWoffset=0;v...
var xPos = 300;
var yPos = 200;
var step = 1;
var delay = 30;
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.body.clientWidth;
height = document.body.clientHeight;
Hoffset = img1.offsetHeight;
Woffset = img1.offsetWidth;
img1.style.left = xPos + document.body.scrollLeft;
img1.style.top = yPos + document.body.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();
在火狐浏览器,无法在窗口中移动。 展开
var yPos = 200;
var step = 1;
var delay = 30;
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.body.clientWidth;
height = document.body.clientHeight;
Hoffset = img1.offsetHeight;
Woffset = img1.offsetWidth;
img1.style.left = xPos + document.body.scrollLeft;
img1.style.top = yPos + document.body.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();
在火狐浏览器,无法在窗口中移动。 展开
2个回答
展开全部
var xPos = 300;
var yPos = 200;
var step = 1;
var delay = 30
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var img1 = document.getElementById("img1");
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) + "px";
img1.style.top = (yPos + 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);
}
}
function start(){
img1.style.visibility = "visible";
interval = setInterval(changePos, delay);
}
function pause_resume(){
if(pause){
clearInterval(interval);
pause = false;
}else{
interval = setInterval(changePos,delay);
pause = true;
}
}
start();
=======================
注意你的网页内的对应广告所在的DIV层,要设置<div id="img1"></div>
=======================
帮你修改好了,其实你这段JS代码要兼容FF的话,也很简单,注意以下几点:
1、FF要求任何一个网页内的对象,必须要有声明,所以img1.offsetHeight在使用前,必须先声明,所以要有var img1 = documment.getElementById("img1");声明img1变量是DIV层ID为img1的对象
2、XHTML1.0网页标准后,基本JS代码,在FF和Chrome下,都不支持document.body了,所以要全部改为document.documentElement
3、在设置网页对象的偏移量属性的时候(包括高宽属性),必须要添加px单位值,所以img1.style.left = xPos + document.documentElement.scrollLeft 这句的末尾要添加"px";
以上三点不严格的代码,之所以在IE中会被执行,是因为IE本身没有太严格,很多时候,微软也算是太过纵容开发者了,他们在IE内部会自动将JS不完善的代码,解读成完善的。
所以IE有时候甚至还容许HTML代码没有闭合标签,呵呵,这是题外话了。
var yPos = 200;
var step = 1;
var delay = 30
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var img1 = document.getElementById("img1");
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) + "px";
img1.style.top = (yPos + 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);
}
}
function start(){
img1.style.visibility = "visible";
interval = setInterval(changePos, delay);
}
function pause_resume(){
if(pause){
clearInterval(interval);
pause = false;
}else{
interval = setInterval(changePos,delay);
pause = true;
}
}
start();
=======================
注意你的网页内的对应广告所在的DIV层,要设置<div id="img1"></div>
=======================
帮你修改好了,其实你这段JS代码要兼容FF的话,也很简单,注意以下几点:
1、FF要求任何一个网页内的对象,必须要有声明,所以img1.offsetHeight在使用前,必须先声明,所以要有var img1 = documment.getElementById("img1");声明img1变量是DIV层ID为img1的对象
2、XHTML1.0网页标准后,基本JS代码,在FF和Chrome下,都不支持document.body了,所以要全部改为document.documentElement
3、在设置网页对象的偏移量属性的时候(包括高宽属性),必须要添加px单位值,所以img1.style.left = xPos + document.documentElement.scrollLeft 这句的末尾要添加"px";
以上三点不严格的代码,之所以在IE中会被执行,是因为IE本身没有太严格,很多时候,微软也算是太过纵容开发者了,他们在IE内部会自动将JS不完善的代码,解读成完善的。
所以IE有时候甚至还容许HTML代码没有闭合标签,呵呵,这是题外话了。
展开全部
您好!很高兴为您答疑!
网页内的对应广告所在的DIV层,要设置<div id="img1"></div>,任何一个网页内的对象,必须要有声明,所以img1.offsetHeight在使用前,必须先声明。
XHTML1.0网页标准后,基本JS代码,在FF和Chrome下,都不支持document.body了,所以要全部改为document.documentElement。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
网页内的对应广告所在的DIV层,要设置<div id="img1"></div>,任何一个网页内的对象,必须要有声明,所以img1.offsetHeight在使用前,必须先声明。
XHTML1.0网页标准后,基本JS代码,在FF和Chrome下,都不支持document.body了,所以要全部改为document.documentElement。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询