为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
JavaScript进阶篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript进阶篇

慕课官方号 页面重构设计
难度入门
时长 8小时55分
  • scrollLeft:设置或获取位于给定对象左边界与窗口中目前可见内容的最左端之间的距离 ,即左边灰色的内容。

    scrollTop:设置或获取位于对象最顶端与窗口中可见内容的最顶端之间的距离 ,即上边灰色的内容。

    offsetLeft:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 。

    offsetTop:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算顶端位置 。

    注意:

    1. 区分大小写

    2. offsetParent:布局中设置postion属性(Relative、Absolute、fixed)的父容器,从最近的父节点开始,一层层向上找,直到HTML的body。


    <!DOCTYPE HTML>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
        function req(){
              var div = document.getElementById("div1");
              document.getElementById("li1").innerHTML = (div.offsetTop)+"px";//div1距离屏幕顶部的距离
              document.getElementById("li2").innerHTML = (div.offsetLeft)+"px";//div1距离屏幕左部的距离
              document.getElementById("li3").innerHTML = (div.scrollTop)+"px";//div1纵向滚动条滚动的距离
              document.getElementById("li4").innerHTML = (div.scrollLeft)+"px";//div1横向滚动条滚动的距离
         }
    </script>
    </head>
    <body >
        <div >
            <div >
                <div id="div1" >
                    <div >请调整横竖滚动条后,点击按钮后查看offsetTop、offsetLeft、scrollTop、scrollLeft值。</div>
                </div>
                <input type="button" value="点击我!" onclick="req()" />
            </div>
            
        </div>
        <div >
            <ul >结果:
                <li>offsetTop : <span id="li1"></span></li>
                <li>offsetLeft : <span id="li2"></span></li>
                <li> scrollTop : <span id="li3"></span></li>
                <li>scrollLeft : <span id="li4"></span></li>
            </ul>
            
        </div>
        <div ></div>    
    </body>
    </html>

    查看全部
  • 任务

    在script标签内,补充右边编辑器代码,获取浏览器当前窗口大小。

    var w=window.innerWidth;
    var h=window.innerHeight;
    document.write(w+"*"+h+"<br>")

    查看全部
  • 创建文本节点createTextNode

    createTextNode() 方法创建新的文本节点,返回新创建的 Text 节点。

    语法:

    document.createTextNode(data)

    参数:

    data : 字符串值,可规定此节点的文本。

    我们来创建一个<div>元素并向其中添加一条消息,代码如下:

    运行结果:

     

    任务

    在代码编辑器<script>标签中,创建一个P标签,设置className属性,使用createTextNode创建文本节点"I love JavaScript!"。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style type="text/css">

    .message{    
        width:200px;
        height:100px;
        background-color:#CCC;}
        
    </style>
    </head>
    <body>
    <script type="text/javascript">
        var element = document.createElement("p");
        element.className = "message";
        var textNode = document.createTextNode("I love JavaScript");
        element.appendChild(textNode);
        document.body.appendChild(element);

    </script>

    </body>
    </html>

    查看全部
  • 创建元素节点createElement

    createElement()方法可创建元素节点。此方法可返回一个 Element 对象。

    语法:

    document.createElement(tagName)

    参数:

    tagName:字符串值,这个字符串用来指明创建元素的类型。

    注意:要与appendChild() 或 insertBefore()方法联合使用,将元素显示在页面中。

    我们来创建一个按钮,代码如下:

    <script type="text/javascript">    var body = document.body;    var input = document.createElement("input");      input.type = "button";      input.value = "创建一个按钮";      body.appendChild(input);    </script>

    效果:在HTML文档中,创建一个按钮。

    我们也可以使用setAttribute来设置属性,代码如下:

    <script type="text/javascript">      var body= document.body;                 var btn = document.createElement("input");      btn.setAttribute("type", "text");      btn.setAttribute("name", "q");      btn.setAttribute("value", "使用setAttribute");      btn.setAttribute("onclick", "javascript:alert('This is a text!');");           body.appendChild(btn);   </script>

    效果:在HTML文档中,创建一个文本框,使用setAttribute设置属性值。 当点击这个文本框时,会弹出对话框“This is a text!”。

    任务

    试一试,实现在HTML文档中创建一个链接,并设置相应属性。

    1. 在右边编辑器补充代码,完善createa(url,text)创建链接函数,参数1为链接地址,参数2为链接文本。函数中添加链接地址、文本、文字颜色属性。

    2. 调用createa函数,链接地址 http://www.imooc.com,文本为:慕课网

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>
    <body>
    <script type="text/javascript">
    var main = document.body;
    //创建链接
    function createa(url,text)
    {
      var a=document.createElement("a");
      a.href=url;
      a.innerHTML=text;
      a.style.color="blue";
      main.appendChild(a);  
        
        
    }
    // 调用函数创建链接
    createa("http://www.imooc.com","慕课网");

    </script>
    </body>
    </html>

    查看全部
  • 替换元素节点replaceChild()

    replaceChild 实现子节点(对象)的替换。返回被替换对象的引用。 

    语法:

    node.replaceChild (newnode,oldnew )

    参数:

    newnode : 必需,用于替换 oldnew 的对象。 
    oldnew : 必需,被 newnode 替换的对象。

    我们来看看下面的代码:

     

    效果: 将文档中的 Java 改为 JavaScript。

    注意: 

    1. 当 oldnode 被替换时,所有与之相关的属性内容都将被移除。 

    2. newnode 必须先被建立。 

    任务

    试一试,补充函数 replaceMessage() 代码,实现将 b 标签替换成 i 标签。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>
    <body>


      <div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>
      <a href="javascript:replaceMessage()"> 将加粗改为斜体</a>
     
        <script type="text/javascript">
          function replaceMessage(){
            // var oldnode=document.getElementById("oldnode");
            // var newnode=document.createElement("i");
            // newnode.innerHTML=oldnode.innerHTML
            // oldnode.parentNode.replaceChild(newnode,oldnode);
            
            var newnode=document.createElement("i");
            var newnodeText=document.createTextNode("javaScript");
            newnode.appendChild(newnodeText);
            var oldNode=document.getElementById("oldnode");
            oldNode.parentNode.replaceChild(newnode,oldNode);
               
           }    
      </script>
     
     </body>
    </html>

    查看全部
  • 删除节点removeChild()

    removeChild() 方法从子节点列表中删除某个节点。如删除成功,此方法可返回被删除的节点,如失败,则返回 NULL。

    语法:

    nodeObject.removeChild(node)

    参数:

    node :必需,指定需要删除的节点。

    我们来看看下面代码,删除子点。

    运行结果:

    HTML 删除节点的内容: javascript

    注意: 把删除的子节点赋值给 x,这个子节点不在DOM树中,但是还存在内存中,可通过 x 操作。

    如果要完全删除对象,给 x 赋 null 值,代码如下:

     

    任务

    试一试,定义clearText()函数,完成节点内容的删除。

    1. 删除该节点的内容,先要获取子节点。

    2. 然后使用循环遍历每个子节点。

    3. 使用removeChild()删除节点。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>

    <body>
    <div id="content">
      <h1>html</h1>
      <h1>php</h1>
      <h1>javascript</h1>
      <h1>jquery</h1>
      <h1>java</h1>
    </div>

    <script type="text/javascript">
    function clearText() {
      var content=document.getElementById("content");
      // 在此完成该函数
      for(var i=0;i<content.childNodes.length;i++){
          if(content.childNodes[i].nodeType!=1){   
             continue;  
          } else {
             content.removeChild(content.childNodes[i]);    
          }
             
      }
     
    }
    </script>

    查看全部
  • 插入节点insertBefore()

    insertBefore() 方法可在已有的子节点前插入一个新的子节点。

    语法:

    insertBefore(newnode,node);

    参数:

    newnode: 要插入的新节点。

    node: 指定此节点前插入节点。

    任务

    试一试,在script 标签内补充代码,实现创建一个新li标签,内容为"php",并将新创建的li插入到内容为HTML的标签前。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>
    <body>

    <ul id="test"><li>JavaScript</li><li>HTML</li></ul>
     
    <script type="text/javascript">

      var otest = document.getElementById("test");   
      var node = document.getElementsByTagName("li")[1];  
      var newnode = document.createElement("li");
      newnode.innerHTML = "php" ;  
      otest.insertBefore(newnode,node);
     
      // var newnode=document.createElement("li");
      // newnode.innerHTML="php";
      // otest.insertBefore(newnode,otest.lastChild);
     
     
    </script>

    </body>
    </html>

    查看全部
  • 网页尺寸offsetHeight


    查看全部
  • 网页尺寸scrollHeight


    查看全部
  • 创立新节点替换旧节点。

    查看全部
  • 删除子节点。注意:X=null彻底从内存清除。

    查看全部
  • 创立并前加入节点

    查看全部
  • 创建并增加子节点。

    查看全部

  • 节点属性值

    查看全部
    0 采集 收起 来源:节点属性

    2019-05-23

  • Dom 属性设置

    查看全部

举报

0/150
提交
取消
课程须知
你需要具备HTML、css基础知识,建议同学们也可以想学习下js入门篇,快速认识js,熟悉js基本语法,更加快速入手进阶篇!
老师告诉你能学到什么?
通过JavaScript学习,掌握基本语法,制作简单交互式页面
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!