js不兼容火狐的问题。。求教

天空深蓝 2011-12-24 10:40:48
我把代码贴一下

<SCRIPT LANGUAGE="JavaScript">
<!--
function sc5(){
document.getElementById("tishi").style.top=(document.documentElement.scrollTop+document.documentElement.clientHeight-285)+"px";
document.getElementById("tishi").style.left=(document.documentElement.scrollLeft+document.documentElement.clientWidth-285)+"px";
}
function scall(){
sc5();
}
window.onscroll=scall;
window.onresize=scall;
window.onload=scall;
//-->
</SCRIPT>


IE下有效,火狐下就是不滚动。我实在是不懂哪里的问题。拜托懂的大大,求指教。
...全文
184 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
已经解决,结贴。
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xingqiliudehuanghun 的回复:]

三目运算符,因为太长了,所以分开两行写的,这样代码看起来不用左右拉滚动条。
[/Quote]
知道了,谢谢
  • 打赏
  • 举报
回复
三目运算符,因为太长了,所以分开两行写的,这样代码看起来不用左右拉滚动条。
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xingqiliudehuanghun 的回复:]

一个比较完整的方案应该是这样
HTML code
<!doctype html>
<html>
<script type="text/javascript">
<!--
function sc5(){
var div = document.getElementById("tishi");
var docBody = document.body;
var docElem = d……
[/Quote]
我能问下加?和:是什么意思吗?
  • 打赏
  • 举报
回复
一个比较完整的方案应该是这样
<!doctype html>
<html>
<script type="text/javascript">
<!--
function sc5(){
var div = document.getElementById("tishi");
var docBody = document.body;
var docElem = document.documentElement;
var isWebkit = navigator.userAgent.indexOf('WebKit') != -1;
var isBackCompat = document.compatMode == "BackCompat";

var scrollTop = (
isBackCompat || isWebkit
? docBody.scrollTop
: docElem.scrollTop
);

var scrollLeft = (
isBackCompat || isWebkit
? docBody.scrollLeft
: docElem.scrollLeft
);

var clientHeight = (
isBackCompat
? docBody.clientHeight
: docElem.clientHeight
);

var clientWidth = (
isBackCompat
? docBody.clientWidth
: docElem.clientWidth
);

div.style.top = (scrollTop + clientHeight - 285) + "px";
div.style.left = (scrollLeft + clientWidth - 285) + "px";
}

function scall(){
sc5();
}
window.onscroll=scall;
window.onresize=scall;
window.onload=scall;
//-->
</script>
<body>
<p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p>
<p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p>
<p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p>
<div id=tishi style="position:absolute">test</div>

<div style="width:2000px;">11</div>
</body>
</html>
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ranranxd 的回复:]

IE和FF下的方法差异 还有就是浏览器的呈现模式的不同
iebody = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
上面这个是判断浏览器的呈现模式
下面是判断是不是IE
dsocleft = (docume……
[/Quote]
这个是加在哪里?
ranranxd 2011-12-26
  • 打赏
  • 举报
回复
IE和FF下的方法差异 还有就是浏览器的呈现模式的不同
iebody = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
上面这个是判断浏览器的呈现模式
下面是判断是不是IE
dsocleft = (document.all)? iebody.scrollleft : window.pageXOffset
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 net_lover 的回复:]

完整测试代码
HTML code

<!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">

<SCRIPT LAN……
[/Quote]
汗。。我用的是傲游测试,发现IE下滚动,发现极速模式不滚动。。
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zjleon2008 的回复:]

也许是事件添加的位置不对,你往document.body.onscroll里加试试
[/Quote]
我对js不懂的,不知道你说的事件是什么意思。
天空深蓝 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 p2227 的回复:]

火狐下用css
position:fix;
就可以达到你想要的效果了,自己查一下用法吧
[/Quote]
加了这个就固定不滚动了。。
孟子E章 2011-12-25
  • 打赏
  • 举报
回复
完整测试代码
 
<!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">

<SCRIPT LANGUAGE="JavaScript">
<!--
function sc5(){
document.getElementById("tishi").style.top=(document.documentElement.scrollTop+document.documentElement.clientHeight-285)+"px";
document.getElementById("tishi").style.left=(document.documentElement.scrollLeft+document.documentElement.clientWidth-285)+"px";
}
function scall(){
sc5();
}
window.onscroll=scall;
window.onresize=scall;
window.onload=scall;
//-->
</SCRIPT>
<body>
<p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p>
<p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p>
<p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p><p>p</p>
<div id=tishi style="position:absolute">test</div>



孟子E章 2011-12-25
  • 打赏
  • 举报
回复
firefox 9下测试是可以的,你需要写上
<!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">

zjleon2008 2011-12-24
  • 打赏
  • 举报
回复
也许是事件添加的位置不对,你往document.body.onscroll里加试试
p2227 2011-12-24
  • 打赏
  • 举报
回复
火狐下用css
position:fix;
就可以达到你想要的效果了,自己查一下用法吧

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧