Javascript DOM 编程实例讲解--仿LightBox效果提示框(4)

作者:海啸 来源:无忧脚本 时间:2008-05-01 13:25:00 

DOM的高级操作--创建/追加/删除节点、设置CSS样式、设置节点属性

还是拿刚才的代码,看看怎么运用这个方法获得节点:


哈哈,活学活用,才是我们学习的目的,不是吗?

DOM的高级操作--创建/追加/删除节点、设置CSS样式、设置节点属性

document.createElement(tagName)--创建节点

通过对前面基础知识的学习,我们现在开始正式讲解这个实例的实现过程了,接着开实例下面代码:

// 创建透明阴影遮照效果层
var shadow = document.createElement("div");

这样我们就通过document.createElement("div");创建了一个div节点,但是只是创建节点还是远远不够的,看看我们开头的原理分析,我们创建的这个层有特殊的position定位,而我们怎么来实现给它添加这些属性(Attribute)呢?

element.setAttribute--设置CSS样式

为什么我要用Attribute而不是Property呢?因为我接下来要介绍的一个DOM操作的方法element.setAttribute(AttributeName,value)--给节点设置属性。还是回到例子
shadow.setAttribute("id","shadow");

这样我就给我刚刚创建的div添加了一个id属性,值是shadow,相当于这么写:

<div id="shadow"></div>

为什么要给这个节点添加id?其实目的很简单,以便我们在以后的程序开发中使用document.getElementById查寻这个节点。

element.getAttribute(AttributeName)--获得属性

既然能够设置属性,我们就可以使用element.getAttribute(AttributeName)方法获得属性,举个例子:


<input name="btnshow" id="btnshow" type="button" onclick="CreateDiv()" value="显示信息层" />
<script language="javascript" type="javascript">
<!--
var btn=document.getElementById("btnshow");
alert(btn.getAttribute("value"));
//-->
</script>

接下来就是要设置这个节点的position属性了,怎么做?看看我的代码:


shadow.style.position="absolute";     
shadow.style.left="0";
shadow.style.top="0";
shadow.style.width="100%";
shadow.style.height="100%";
shadow.style.zIndex="10";

这么设置的结果就等于我们这么写CSS:

#shadow{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:100%;
  z-index:10;
}

这么一写,我想大家就清楚现在的这个遮照层的样式是个什么样子了:一个用绝对定位的层,占满整个屏幕,z坐标为10。

这么一翻译,我想他的效果大家很清楚了,这里要说明是的position:absolute;达到的效果,虽然它占满了真个屏幕,但却不影响其他元素的布局,例子中的按钮的布局就没有受到影响。而至于position方法的说明,请看Ajax标签导航实例详解一文中对position定位的说明。

而在这里我要重点介绍的是怎么使用Javascript给一个DOM节点添加CSS样式?在Javascript里我们是通过style这个关键字来设置的,然后就是接着属性,最后给属性付值。就像这样

(element.style.property=value):
shadow.style.zIndex="10";

呵呵,我为什么单单要拿z-index这个属性来讲呢?这里要讲一下设置CSS样式的语法:属性都必须是小写的,但是如z-index,background-color,text-decoration这样中间有连接符的属性,就采用骆驼华的写法,就是这样:

shadow.style.zIndex="1";
shadow.style.backgroundColor="#FFF";
shadow.style.textDecoration="24px";

现在大家清楚了怎么用javascript给一个节点设置样式了吧。其实还有更简单的方法,怎么个简单法?其实在我上面的代码就已经给出了答案,使用setAttribute()方法,大家看看下面的代码就清楚了。

// 创建提示框层节点
var obj=document.createElement("div");
obj.setAttribute("id","window");
obj.style.zIndex="999";

发现了什么问题没有?对了,在这里我创建了节点后,只是使用setAttribute()方法给节点设置了id 属性,而没有像设置shadow节点那样再给它添加CSS样式了,但是它的样式已经获得了,因为我早已经在之前的CSS代码写好样式了。

#window{
   position:absolute;
   left:50%;
   top:50%;
   width:400px;
   height:180px;
   margin:-90px 0 0 -200px;
}

所以这个更简单的方法就是事先就把要创建的节点的样式写好,就可以直接使用setAttribute()方法给节点设置一个于写好的CSS对应的id或class属性就可以了(给节点添加class属性,如:

element.setAttribute("class",className))。

怎么给节点设置CSS样式,这里基本上就讲完了,还是回到我们的实例,看看,后来我又给shadow节点添加了什么样式:

// 如果是Opera浏览器则给shadow设置背景色和透明效果
if(!isOpear){
   shadow.style.backgroundColor="#06C";
    
   if(document.all){
     shadow.style.filter = "alpha(opacity=20)";
  }
  else{
     shadow.style.opacity = 0.2;
  }
}

对了,我们的shadow(阴影)是有一个半透明的效果的,所以我分别使用了shadow.style.filter = "alpha(opacity=20)";和shadow.style.opacity = 0.2;给它设置了透明的滤镜。其实就是一般的设置CSS样式。

标签:lightbox,dom,编程,javascript
0
投稿

猜你喜欢

  • 七种Python代码审查工具推荐

    2021-06-16 07:07:34
  • 好用的Python编辑器WingIDE的使用经验总结

    2022-01-15 06:23:10
  • Oracle CBO 的 _sort_elimination_cost_ratio 参数

    2008-07-22 12:24:00
  • python 爬取百度文库并下载(免费文章限定)

    2022-05-08 16:18:28
  • Python之Numpy的超实用基础详细教程

    2021-12-05 19:06:23
  • 将Python文件打包成.EXE可执行文件的方法

    2023-05-26 20:25:50
  • python爬虫之urllib,伪装,超时设置,异常处理的方法

    2022-07-23 23:47:10
  • 比较详细的完美解决安装sql2000时出现以前的某个程序安装已在安装计算机上创建挂起的文件操作。 <font color=red>原创</font>

    2024-01-27 03:48:54
  • php自动获取字符串编码函数mb_detect_encoding

    2023-09-12 03:32:11
  • Go结合Gin导出Mysql数据到Excel表格

    2024-01-21 05:43:50
  • Golang嵌入资源文件实现步骤详解

    2023-06-21 08:52:36
  • 基于Python Pygame实现的画饼图游戏

    2023-10-25 18:30:23
  • Python实现求一个集合所有子集的示例

    2022-09-01 20:56:51
  • 什么是UE,UED?

    2008-07-24 13:26:00
  • python dataframe NaN处理方式

    2022-12-01 18:49:33
  • 解析MySQL设置当前时间为默认值的方法

    2024-01-20 08:23:39
  • Python基于React-Dropzone实现上传组件的示例代码

    2021-04-01 19:53:03
  • Python2和Python3的共存和切换使用

    2022-12-26 13:05:20
  • Python3 ID3决策树判断申请贷款是否成功的实现代码

    2021-02-11 15:01:58
  • Yii开启片段缓存的方法

    2023-11-21 05:00:40
  • asp之家 网络编程 m.aspxhome.com