猪头小队长

来源:百度文库 编辑:神马文学网 时间:2024/05/01 02:50:32
解决浮动图层在定义DOCTYPE之后的问题
猪头小队长 | 07 九月, 2005 19:35 (419 Reads)
浮动图层的原理就是利用document.body.scrollLeft和document.body.scrollTop动态的改变图层的位置,但是当HTML有了类似这样的头之后,图层就打死也不动了。
"http://www.w3.org/TR/html4/loose.dtd">
跟踪之后可以发现,当定义了DOCTYPE之后document.body.scrollLeft和document.body.scrollTop无论滚动条滚动到何处,这样的属性永远都等于零。于是图层就不再浮动了。
一般的解决办法是去掉那个头,呵呵。这里说的是另外一个办法。
在定义了DOCTYPE之后,使用document.documentElement.scrollLeft代替document.body.scrollLeft。同理使用document.documentElement.scrollTop代替document.body.scrollTop。
这样在有DOCTYPE的时候,图层也可以滚动了。
但是,在没有DOCTYPE的时候document.documentElement.scrollLeft也永远为零了,那么,能否有一个在有没有DOCTYPE定义都可以用的方案涅?嘿嘿。
那就可以这样写:
if(document.documentElement&&document.documentElement.scrollLeft)
{
scrollLeft=document.documentElement.scrollLeft;
}
elseif(document.body)
{
scrollLeft=document.body.scrollLeft;
}
这样就可以在任何情况下使用scrollLeft了,其他的属性(scrollTop、clientWidth、clientHeight)同理。
问题答案来源于:
http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
人家的Blog写的,真叫专业。知道小混混和大佬的区别吗?professional!
_xyz