#12001/3/13 2:02:21
显示和隐藏
翻译:QQlan
继续上一节的教程, 你也许会问:"为什么NS用'show'来表示visibility?"
回答这个问题, 主要是NS的CSS属性基于LAYER tag. NS甚至不在乎它的LAYER tag被W3C推荐入CSS-P. 因此,"show"和相对应的"hide"值被作为visibility属性显示. 我相信这也是NS对CSS-P提出异议的唯一耀眼而显著的地方.
除非有了统一标准, 不然, 我们必须写不同的代码来隐藏一个特殊元素.
For Netscape
在NS中显示一个元素, 你必须使用:
document.divName.visibility = "show"
如果隐藏它, 则:
document.divName.visibility = "hide"
For Internet Explorer
在IE中显示一个元素, 你必须使用:
divName.style.visibility = "visible"
如果隐藏它, 则:
divName.style.visibility = "hidden"
一般用来Show 和hide的 Functions
代替一次又一次的重复写show & hide元素的代码, 我们可以使用以下的functions:
function showObject(obj) {
if (ns4) obj.visibility = "show"
else if (ie4) obj.visibility = "visible"
}
function hideObject(obj) {
if (ns4) obj.visibility = "hide"
else if (ie4) obj.visibility = "hidden"
}
这些函数和指针并用. -- 看下面的例子.
你可以改变任何一个元素的visibility, 象这样:
showObject(objectName)
or
hideObject(objectName)
其中objectName就是你指向的特殊DIV tag的指针.
范例: showhide1.html (http://www.dansteinman.com/dynduo/examples/showhide1.html)
[b]show/ hide functions without Pointer Variables
仅仅用来hidden或者shown,大堆的层, 不仅麻烦而且不必要. 上面介绍的使用指针的方法, 只是为将来的教程做基础, 我们需要在这之上创建更强大,复杂的效果. 但是, 如果你不需要更多的功能, 下面的无指针functions不仅可行而且简单.
// Show/Hide functions for non-pointer layer/objects
function show(id) {
if (ns4) document.layers[id].visibility = "show"
else if (ie4) document.all[id].style.visibility = "visible"
}
function hide(id) {
if (ns4) document.layers[id].visibility = "hide"
else if (ie4) document.all[id].style.visibility = "hidden"
}
用法和上面的例子相似, 不过, 引号内不是变量而是准确的名字.
show("divID")
or
hide("divID")
其中DivID 是你想show/hide的层的DIV tag的ID.
Example: showhide2.html (http://www.dansteinman.com/dynduo/examples/showhide2.html)
-------------------------------------------------------------
5DMedia 版权所有, 转载请注明出处.
编辑历史:[这消息被QQlan编辑过(编辑时间2001-03-13 02:03:04)]