用JavaScript编写弹出层原理分析及初步实现

目录

       基本原理

       具体步骤

       完整实例代码

       兼容性检查

       总结


基本原理

       利用JS编写弹出层,关键是要知道JavaScript操作HTML文档的原理,即要知道HTML DOM。

       我们编写的一个个网页实际上是一份份HTML文档,这份HTML文档包括标签和标签之间的内容。JavaScript如何操作HTML文档呢?所以要定义HTML文档的操作方法,这就是HTML DOM。

       HTML DOM是HTML Document Object Model的缩写,翻译成中文是,HTML文档对象模型。它定义了访问和操作HTML文档的标准方法。HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树),如图1。

HTML文档树

                        图1 HTML文档树

      要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。

      我们现在要用JS编写一个弹出层,也就是在原来HTML文档内添加一个div节点,即appendChild() 方法。


具体步骤

        第一步,编写HTML文档,并加上HTML事件

<html>
<head>
</head>
<body>
Hello World!这是原页面!
<a href="javascript:show()">点击弹出div框</a>
</body>

        第二步,编写JS事件代码

           先熟悉下div基本属性,宽度(width)、高度(height )、定位(距顶边界距离top、据左边界距离left),为了看出div是否显示出来,还要设置div的背景颜色background。

           接着在HTML文档树上增加一个div节点

	 var newDiv=document.createElement("div");
 	 document.body.appendChild(newDiv);
           再设置div属性

    newDiv.style.width = "300px";
    newDiv.style.height = "200px";
    newDiv.style.top = "50px";
    newDiv.style.left = "50px";
    newDiv.style.background = "#33393C";	

完整实例代码

    利用JS编写弹出层的完整代码如下:

<html>
 <head>
 <script language="javascript">
 <!--
  function show(){
    var newDiv=document.createElement("div");//创建div节点
    
    //设置div属性
    newDiv.style.width = "300px";
    newDiv.style.height = "200px";
    newDiv.style.top = "50px";
    newDiv.style.left = "50px";
    newDiv.style.background = "#33393C";	
    
    document.body.appendChild(newDiv);//添加div节点
  }
 //-->
 </script>
 <title>无标题文档</title>
 </head>
 
 <body>
 Hello World!这是原页面! <a href="javascript:show()">点击弹出div框</a>
 </body>
 </html>


兼容性检查

  • Trident(IE内核):IE6、IE7、IE8、IE9均检查通过
  • Gecko(FF内核):火狐检查通过
  • Webkit:谷歌检查通过

总结

       以上是个人对利用JS编写弹出层的一点理解,是为了帮助更多新手理解怎么编写弹出层,如果有错误,欢迎大家指出,也以免误导新手,也期待与更多人交流。


参考文献

1、http://www.w3school.com.cn/htmldom/index.asp

知识共享许可协议
本作品采用 知识共享署名-非商业性使用 3.0 Unported许可协议进行许可。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值