美文网首页
JavaScript ☞ day2

JavaScript ☞ day2

作者: 浪子彦卿L | 来源:发表于2018-06-07 18:04 被阅读0次
    JavaScript基础学习笔记之JavaScript提升
    了解时间
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>了解时间</title>
    </head>
    <body>
        <script type="text/javascript">
            /**
             * 格林尼治时间(GTM):是英国郊区皇家格林尼治天文台的时间,因为地球自转的原因,不同经度上的时间是不相同的,格林尼治天文台是经度为0的地方。世界上发生的重大时间都是以格林尼治时间时间为标准的。
             *
             *
             * 世界协调时间(UTC):世界时间。1970年1月1日0点。
             */
        </script>
    </body>
    </html>
    
    Date
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Date</title>
    </head>
    <body>
        <script type="text/javascript">
            //ECMAScript中的Date类型是在早期Java中的java.util.Date类的基础上构建的。为此Date类型使用自UTC1970年1月1日午夜(零时)开始经过的毫秒数保存时间的。该Date类型保存的日期能够精确到1970年1月1日之前和之后的285616年
            
    
            //创建
            
            //1、直接用Date()函数
            //返回当前时间
            //注意:不论Date()是否带参数,返回的都是当前时间
            var date1 = Date("2016-09-18");
            console.log(typeof date1);//String类型
            console.log(date1);
    
    
            //2、构造函数法--不传参数
            //返回当前时间
            var date2 = new Date();
            console.log(typeof date2);//Object类型
            console.log(date2);
    
    
            //3、构造函数法--参数是一个表示时间的字符串
            //3.1 格式:month day, year hours:minutes:seconds
            //December 24, 2008 12:04:13
            //注意:如果省略了小时、分钟、秒数,这些会被设置为0
            //3.2 2016-09-18 18:32:32    2016-9-18 18:32:32
            //3.3 2016/09/18 18:32:32
            var date3 = new Date("2016/09/18");
            console.log(date3);
    
    
            //4、
            var date4 = new Date("2016-09-08");
            console.log(date4);
            //5、
            var date5 = new Date("2016-9-8");
            console.log(date5);
    
    
    
            //6、构造函数法--参数是(年,月,日,时,分,秒,毫秒)
            //注意:年和月必须写,且月从0开始,日期从1开始
            var date6 = new Date(2016,09,9,10,10,10,1000);
            console.log(date6);
    
    
            //7、构造函数法--参数是毫秒数
            //返回中国标准时间
            var date7 = new Date(1000);
            console.log(date7);
    
        </script>
    </body>
    </html>
    
    Date对象的方法
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Data对象的方法</title>
    </head>
    <body>
        <script type="text/javascript">
            var date = new Date();
    
    
            //获取年份
            console.log(date.getFullYear());
    
            //获取月份,注意0表示1月,依次类推
            console.log(date.getMonth());
    
            //获取日期
            console.log(date.getDate());
    
            //获取星期
            console.log(date.getDay());
    
            //获取小时
            console.log(date.getHours());
    
            //获取分钟
            console.log(date.getMinutes());
    
            //获取秒数
            console.log(date.getSeconds());
    
            //获取毫秒数
            console.log(date.getMilliseconds());
    
            //获取日期对象所表示的日期距离1970-01-01的毫秒数
            console.log(date.getTime());
    
    
    
            //设置年份
            date.setFullYear(2015);
    
            //设置月份
            //注意:传入的月份大于11,则年份增加
            date.setMonth(8);
    
            //设置日期
            //注意:如果传入的日期超过了该月应有的天数则会增加月份
            date.setDate(29);
    
            //注意:星期一般不用设置
            
            //设置小时
            //注意:如果传入的值超过23则增加日期
            date.setHours(13);
    
            //设置分钟
            //注意:如果传入的值超过了59则增加小时数
            date.setMinutes(56);
    
            //设置秒数
            //注意:传入的值超过59会增加分钟数
            date.setSeconds(10);
    
            //设置毫秒数
            //注意:传入的值超过999会增加秒数
            date.setMilliseconds(888);
    
            //设置距离1970-01-01的毫秒数
            date.setTime(1308484904898);
    
            console.log(date);
    
    
            //转换成字符串
            //包含年月日时分秒
            console.log(date.toLocaleString());
            //包含年月日
            console.log(date.toLocaleDateString());
            //包含时分秒
            console.log(date.toLocaleTimeString());
    
    
    
            //Date.parse(dateString)
            //参数:日期字符串  格式:2016-05-08  2015/05/08 12:00:00
            //返回该日期距离1970年1月1日0点的毫秒数
            console.log(Date.parse("2016-10-10"));
    
    
    
    
        </script>
    </body>
    </html>
    
    Date对象间的运算
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Date对象间的运算</title>
    </head>
    <body>
        <script type="text/javascript">
            var date1 = new Date("2016-10-10 10:10:10");
            var date2 = new Date("2016-10-10 10:10:12");
    
            //两个日期对象之间相差的毫秒数
            console.log(date2 - date1);
    
            //返回两个日期字符串拼接后的字符串
            console.log(date2 + date1);
            console.log(typeof (date2 + date1));
    
        </script>
    </body>
    </html>
    
    BOM简介
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>BOM简介</title>
    </head>
    <body style="background-color: red">
        <input type="text" name="abc">
        <button onclick="func()">跳转到绿页面</button>
        <button onclick="refresh()">刷新红页面</button>
        <button onclick="ass()">加载绿页面</button>
    
        <button onclick="backPage()">上一页</button>
        <button onclick="forwardPage()">下一页</button>
    
        <button onclick="goPage()">go到黄界面</button>
    
    
        <script type="text/javascript">
            //BOM:浏览器对象模型(Browser Object Model),是一个用于访问浏览器和计算机屏幕的对象集合。我们可以通过全局对象window来访问这些对象。
            
    
            console.log(window.document);
            console.log(window.frames);
            console.log(window.navigator);
            console.log(window.screen);
            console.log(window.location);
            console.log(window.history);
            
            
            
    
    
            //window.document
            //是一个BOM对象,表示的是当前所载入的文档(即页面),但它的方法和属性同时也属于DOM对象所涵盖的范围。
            
    
    
            //window.frames
            //是当前页面中所有框架的集合
    
    
    
            //window.navigator
            //用于反应浏览器及其功能信息的对象
    
    
    
            //window.screen
            //提供浏览器以外的环境信息
    
    
    
            //window.location
            //href属性        控制浏览器地址栏的内容
            //reload()       刷新页面 
            //reload(true)   刷新页面,不带缓存
            //assign()       加载新的页面
            //replace()      加载新的页面(注意:不会再浏览器的历史记录表中留下记录)
            function func() {
                //alert("点我干啥?");
                window.location.href = "greenWindow.html";
            }
            function refresh() {
                window.location.reload();
            }
            function ass() {
                window.location.assign("greenWindow.html");
                //window.location.replase("greenWindow.html");
            }
    
    
    
    
    
            //window.history
            //window.history.length获取历史记录的长度
            //back()     上一页
            //forward()  下一页
            //go(num)    //num<0时,跳转到自己后方的第num个记录。num>0时,跳转自己前方的第num个记录
    
            console.log("window.history.length = " + window.history.length);
            //上一页
            function backPage() {
                window.history.back();
            }
    
            //下一页
            function forwardPage() {
                window.history.forward();
            }
            //
            function goPage() {
                window.history.go(2);
            }
    
    
        </script>
    </body>
    </html>
    

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>BOM简介</title>
    </head>
    <body style="background-color: green">
        <button onclick="func()">跳转到黄页面</button>
    
        <button onclick="backPage()">上一页</button>
        <button onclick="forwardPage()">下一页</button>
    
        <script type="text/javascript">
            function func() {
                window.location.href = "yellowWindow.html";
            }
    
            function backPage() {
                window.history.back();
            }
    
            function forwardPage() {
                window.history.forward();
            }
        </script>
    
    </body>
    </html>
    

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>BOM简介</title>
    </head>
    <body style="background-color: yellow">
        <button onclick="func()">回到红页面</button>
        <script type="text/javascript">
            function func() {
                window.history.go(-2);
            }
        </script>
    </body>
    </html>
    
    window中常用的方法
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>window中常用的方法</title>
    </head>
    <body>
        <button onclick="openNewWindow()">打开新窗口</button>
        <button onclick="closeWindow()">关闭窗口</button>
    
        <script type="text/javascript">
    
            function openNewWindow() {
                //open(url,target,"特性的字符串")
                window.open("yellowWindow.html", "blank", "width=200px, height=400px, top=0px, left=0px");
            }
    
            function closeWindow() {
                window.close();
    
                //火狐
                //about:config
                //我会保证小心
                //allow_src
                //true
            }
        </script>
    </body>
    </html>
    

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>BOM简介</title>
    </head>
    <body style="background-color: yellow">
    </body>
    </html>
    
    window常用方法open特性
    window中常用的事件-onload加载事件和onunload卸载事件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>window中常用的事件-onload加载事件和onunload卸载事件</title>
    </head>
    <body>
        <button onclick="func()">跳转</button>
        <script type="text/javascript">
    
            //onunload事件
            //当页面完全卸载再触发,只有IE支持
            window.onunload = function() {
                alert("确定关闭");
            };
            function func() {
                window.location.href = "red.html";
            }
    
    
    
            //load事件
            //当页面加载完成的时候会触发该事件  
            window.onload = function() {
                alert("我在界面加载完后才显示");
            };
    
            alert("页面加载中");
    
    
    
        </script>
    </body>
    </html>
    

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>red</title>
    </head>
    <body style="background-color: red">
        
    </body>
    </html>
    
    window中常用的事件-onscroll滚动事件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>window中常用的事件-onscroll滚动事件</title>
    </head>
    <body style="height:3000px">
        <h1>我是顶部</h1>
        <button onclick="goOn()" style="position: fixed;right: 50px;bottom: 50px">返回顶部</button>
    
        
        <script type="text/javascript">
            //当窗口发生滚动会触发该事件
            window.onscroll = function() {
                console.log("滚动");
    
                //打印滚动高度
                var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
                console.log(scrollTop);
            };
    
            //返回顶部
            function goOn() {
                document.documentElement.scrollTop = 0;
                document.body.scrollTop = 0;
            }
        </script>
    </body>
    </html>
    
    window中常用的事件-onresize窗口变化事件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>window中常用的事件-onresize窗口变化事件</title>
    </head>
    <body>
        <script type="text/javascript">
            //当浏览器发生缩放的时候就会反复触发resize事件     
            window.onresize = function() {
                var w = document.documentElement.clientWidth || document.body.clientWidth || window.innerWidth;
    
                var h = document.documentElement.clientHeight || document.body.clientHeight || window.innerHeight;
    
                console.log(document.documentElement.clientWidth, document.body.clientWidth, window.innerWidth, w);
    
                console.log(document.documentElement.clientHeight, document.body.clientHeight, window.innerHeight, h);
            };
        </script>
    </body>
    </html>
    
    定时器-间歇性定时器
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定时器-间歇性定时器</title>
    </head>
    <body>
        <button onclick="closeIntervar()">关闭定时器</button>
        <script type="text/javascript">
            //setInterval(函数名,时间)
            // 功能:创建一个间歇性定时器,每间隔参数二时间执行一次参数一函数
            // 返回值:定时器的id,可以通过该id关闭定时器
            
            var timer = window.setInterval(func, 2000);
    
            function func() {
                console.log("sunck is a good man");
            }
    
            function closeIntervar() {
                //停止定时器
                ////注:js中没有恢复定时器一说,当你停止定时器之后,定时器就会被删掉,想要继续的话,直接新建一个定时器。
    
                window.clearInterval(timer);
            }
    
    
        </script>
    </body>
    </html>
    
    定时器-延时定时器
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定时器-延时定时器</title>
    </head>
    <body>
        <button onclick="closeTimer()">关闭定时器</button>
        <script type="text/javascript">
            //setTimeout(函数名,时间)
            //功能:参数2时间以后再执行参数1函数
            //返回值:定时器的id
            
    
            alert("创建定时器,5秒后执行名为func的函数");
            var timer = window.setTimeout(func, 5000);
    
            function func() {
                console.log("sunck is a good man");
            }
    
            //关闭定时器
            function closeTimer() {
                window.clearTimeout(timer);
            }
            
        </script>
    </body>
    </html>
    
    认识DOM
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>认识DOM</title>
    </head>
    <body>
        <script type="text/javascript">
    
            /**了解DOM
             * DOM:文档对象模型(Document Object Model)
             * DOM是访问HTML和操作HTML的标准。
             *
             * Core DOM – 核心DOM 针对任何结构化文档的标准模型
             * XML DOM  - 针对 XML 文档的标准模型
             * HTML DOM - 针对 HTML 文档的标准模型
             */
            
    
            /**DOM节点的分类
             * 1、文档节点
             * 2、标签(元素)节点
             * 3、属性节点
             * 4、文本节点
             * 5、注释节点
             */
            
    
            /**DOM节点层级关系(DOM树)
             * 1、父节点(parent node):父节点拥有任意数量的子节点
             * 2、子节点(child node):子节点只能拥有一个父节点
             * 3、兄弟节点(sibling node):拥有相同父节点的同级节点
             * 4、根节点(root node):一个HTML文档一般只有一个根节点,根节点没有父亲节点,是最上层的节点。
             *
             *
             *
             * 祖先节点:包含子节点的节点都可以叫做祖先节点,其中包括了父节点。
             * 后代节点:一个节点内包含的所有节点,叫做后代节点,其中包括了子节点。
             */
            
    
    
            /**JS跟页面中这些标签进行交互
             * 1、获取标签(元素)节点
             *      修改标签CSS样式
             *      修改标签属性
             * 2、创建标签
             * 3、删除标签
             * 4、复制标签
             */
            
    
            
        </script>
    </body>
    </html>
    
    css
    DOM节点分类
    DOM节点关系
    获取标签(元素)节点
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>获取标签(元素)节点</title>
    </head>
    <body>
        <div id="idDiv"></div>
    
        <div class="classDiv"></div>
        <div class="classDiv"></div>
        <div class="classDiv"></div>
        <div class="classDiv"></div>
    
        <input type="text" name="inputText">
        <input type="text" name="inputText">
        <input type="text" name="inputText">
    
        <script type="text/javascript">
    
            console.log("**getElementById**");
            //1、getElementById(str)
            //根据元素id获取元素节点
            var jsDiv = document.getElementById("idDiv");
            console.log(jsDiv);
            console.log(typeof jsDiv);
            alert(jsDiv);
    
    
    
    
            console.log("**getElementsByClassName**");
            //2、getElementsByClassName()
            //获取相同class属性的元素节点列表
            //注意:此方法不支持IE8以下
            var jsDivsClass = document.getElementsByClassName("classDiv");
            for (var i = 0; i < jsDivsClass.length; i++) {
                console.log(jsDivsClass[i]);
            }
            
    
    
    
            console.log("**getElementsByTagName**");
            //3、getElementsByTagName()
            //根据标签名来获取元素节点的集合
            var jsDivsTagName = document.getElementsByTagName("div");
            for (var i = 0; i < jsDivsTagName.length; i++) {
                console.log(jsDivsTagName[i]);
            }
    
    
    
    
            console.log("**getElementsByName**");
            //4、getElementsByName()
            //根据name属性值来获取元素节点的集合
            var jsDivsName = document.getElementsByName("inputText");
            for (var i = 0; i < jsDivsName.length; i++) {
                console.log(jsDivsName[i]);
            }
    
        </script>
    </body>
    </html>
    
    获取属性节点
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>获取属性节点</title>
    </head>
    <body>
        <input type="text"  id="in" placeholder="请留下你的大名!" my="我的">
    
        <script type="text/javascript">
            var jsInput = document.getElementById("in");
            console.log(jsInput);
    
    
    
            //方法一:  
            //获取官方定义的属性直接使用 元素节点.属性名        
            //得到元素对应属性的属性值
            var typeNode = jsInput.type;
            console.log(typeNode);
            var placeholderNode = jsInput.placeholder;
            console.log(placeholderNode);
    
    
            //alert("注意!我要变身了");
            //修改元素对应属性的属性值
            //元素节点.属性名 = 新的属性值
            jsInput.placeholder = "傻不傻";
    
    
            //方法二:
            //元素节点.getAttribute("属性名")
            //得到元素对应属性的属性值
            //注意:该方法还可以获取自定义属性
            var idNode = jsInput.getAttribute("my");
            console.log(idNode);
    
            //修改元素对应属性的属性值
            //元素节点.setAttribute("属性名", "新的属性值");
            jsInput.setAttribute("my", "sunck");
            console.log(jsInput);
    
    
            //移除元素节点中的某个属性节点,某些低版本浏览器不支持
            //元素节点.removeAttribute("属性名");
            jsInput.removeAttribute("my");
            console.log(jsInput);
            
        </script>
    </body>
    </html>
    

    ####### 获取属性节点

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>获取属性节点</title>
        </head>
        <body>
            <input type="text"  id="in" placeholder="请留下你的大名!" my="我的">
    
            <script type="text/javascript">
                var jsInput = document.getElementById("in");
                console.log(jsInput);
    
    
    
                //方法一:  
                //获取官方定义的属性直接使用 元素节点.属性名        
                //得到元素对应属性的属性值
                var typeNode = jsInput.type;
                console.log(typeNode);
                var placeholderNode = jsInput.placeholder;
                console.log(placeholderNode);
    
    
                //alert("注意!我要变身了");
                //修改元素对应属性的属性值
                //元素节点.属性名 = 新的属性值
                jsInput.placeholder = "傻不傻";
    
    
                //方法二:
                //元素节点.getAttribute("属性名")
                //得到元素对应属性的属性值
                //注意:该方法还可以获取自定义属性
                var idNode = jsInput.getAttribute("my");
                console.log(idNode);
    
                //修改元素对应属性的属性值
                //元素节点.setAttribute("属性名", "新的属性值");
                jsInput.setAttribute("my", "sunck");
                console.log(jsInput);
    
    
                //移除元素节点中的某个属性节点,某些低版本浏览器不支持
                //元素节点.removeAttribute("属性名");
                jsInput.removeAttribute("my");
                console.log(jsInput);
                
            </script>
        </body>
        </html>
    
    获取文本节点
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>获取文本节点</title>
    </head>
    <body>
        <div id="box">
            我是个盒子
        </div>
        <script type="text/javascript">
            var jsDiv = document.getElementById("box");
    
            //1、元素节点.innerHTML
            //从对象的开始标签到结束标签的全部内容,不包括本身Html标签
            var inner = jsDiv.innerHTML;
            console.log(inner);
            console.log(typeof inner);
    
            //2、元素节点.outerHTML
            //除了包含innerHTML的全部内容外, 还包含对象标签本身
            var outer = jsDiv.outerHTML;
            console.log(outer);
            console.log(typeof outer);
            
            //3、元素节点.innerText
            //从对象的开始标签到结束标签的全部的文本内容
            var text = jsDiv.innerText;
            console.log(text);
            console.log(typeof text);
    
    
    
            //修改
            jsDiv.innerHTML = "<p>我才是</p>";
            console.log(jsDiv);
        </script>
    </body>
    </html>
    
    行间样式表的读写
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>行间样式表的读写</title>
    </head>
    <body>
        <div id="box" style="width:100px;height:200px;background-color:red"></div>
        <button onclick="changeColor()">换颜色</button>
    
        <script type="text/javascript">
            //获取元素节点
            var jsDiv = document.getElementById("box");
    
            //获取style属性节点
            var jsDivStyle = jsDiv.style;
            //console.log(jsDivStyle);
            
    
            //获取样式表中样式属性的属性值  
            //style属性节点.样式属性名  
            //元素节点.style.样式属性名   
            //元素节点.style["样式属性名"]
            var w = jsDivStyle.width;
            console.log(w);
    
            var h = jsDiv.style.height;
            //也可用如下写法
            //var h = jsDiv.style["height"];
            console.log(h);
    
    
            //设置样式表中的样式属性的属性值
            //元素节点.style.样式属性名 = 样式属性值
            //background-color --- backgroundColor
            //HTML中的-号去掉,-号后面的单词首字母大写
            jsDiv.style.backgroundColor = "green";
    
            function changeColor() {
                var r = parseInt(Math.random() * 256);
                var g = parseInt(Math.random() * 256);
                var b = parseInt(Math.random() * 256);
    
                var colorStr = "rgb(" + r + ", " + g + ", " + b + ")";
                jsDiv.style.backgroundColor = colorStr;
            }
    
        </script>
    </body>
    </html>
    
    内部样式表与外部样式表的读写
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>内部样式表与外部样式表的读写</title>
        <link rel="stylesheet" type="text/css" href="sunck.css">
        <style type="text/css">
            #box1{
                width:100px;height: 200px;background-color: red;
            }
        </style>
    </head>
    <body>
        <div id="box1"></div>
        <div id="box2"></div>
    
        <script type="text/javascript">
            /**获取
             *
             * IE中:元素节点.currentStyle.样式属性名
             *      元素节点.currentStyle["样式属性名"]
             * 其他:window.getComputedStyle(元素节点, 伪类).样式属性名
             *      window.getComputedStyle(元素节点, 伪类)["样式属性名"]
             * 
             * 伪类一般写null即可
             * 
             */
            
            //获取元素节点
            var jsDiv1 = document.getElementById("box1");
            var jsDiv2 = document.getElementById("box2");
    
    
            var w1 = 0;
            //判断是否是IE浏览器
            if (jsDiv1.currentStyle) {
                //IE浏览器获取样式属性值的方式
                w1 = jsDiv1.currentStyle.width;
            } else {
                //其他浏览器获取样式属性值的方式
                w1 = window.getComputedStyle(jsDiv1, null).width;
            }
            console.log(w1);
    
            var w2 = 0;
            if (jsDiv2.currentStyle) {
                w2 = jsDiv2.currentStyle.width;
            } else {
                w2 = window.getComputedStyle(jsDiv2, null)["width"];
            }
            console.log(w2);
    
    
    
            //设置样式中的属性的值
            //元素节点.style.样式属性名 = 样式属性值
            jsDiv1.style.backgroundColor = "black";
            jsDiv2.style.backgroundColor = "blue";
    
        </script>
    </body>
    </html>
    
    
    
    sunck.css文件内容
    #box2{
        width: 200px;height: 100px;background-color: green;
    }
    
    getComputedStyle与style的区别
    自由飞翔的div
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>自由飞翔的div</title>
        <style type="text/css">
            #box{
                width: 100px;height: 100px;background-color: red;position: absolute;left: 0px;top: 0px;
            }
        </style>
    </head>
    <body>
        <div id="box"></div>
        <button onclick="fly()" style="position: absolute;left: 150px;top: 150px">飞翔吧</button>
    
        <script type="text/javascript">
            function fly() {
                var jsDiv = document.getElementById("box");
    
                var timer = window.setInterval(move, 100);
    
                
                function move() {
                    var currentLeft = parseInt(window.getComputedStyle(jsDiv, null).left);
                    jsDiv.style.left = (currentLeft + 5) + "px";
    
                    var currentTop = parseInt(window.getComputedStyle(jsDiv, null).top);
                    jsDiv.style.top = (currentTop + 5) + "px";
                }
            }
        </script>
    </body>
    </html>
    
    节点常用属性
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>节点常用属性</title>
        <style type="text/css"> 
            #box1{
                width: 200px;height: 200px;background-color: red;
            }
            #box2{
                width: 200px;height: 200px;background-color: green;
            }
            #box3{
                width: 200px;height: 200px;background-color: yellow;
            }
        </style>
    </head>
    <body>
        <div id="box1">
            <p>我是第一个P</p>
            <p>我是第二个P</p>
            <p>我是第三个P</p>
            <p>我是第四个P</p>
        </div>
        <div id="box2"></div>
        <div id="box3"></div>
        <input id="put" type="text" name="in" placeholder="sunck is a good man">
    
        <script type="text/javascript">
            //节点共有的属性:nodeName、nodeType、nodeValue
            var jsDiv1 = document.getElementById("box1");
            console.log(jsDiv1);
            console.log(jsDiv1.nodeName);
            console.log(jsDiv1.nodeType);
            console.log(jsDiv1.nodeValue);
    
    
    
    
            //节点层次关系属性
            
    
    
            //1、获取当前元素节点的所有的子节点
            var childNodesArray = jsDiv1.childNodes;
            console.log(childNodesArray);
            
            //2、获取当前元素节点的第一个子节点
            var firstChildNode = jsDiv1.firstChild;
            console.log(firstChildNode);
            
            //3、获取当前节点的最后一个子节点
            var lastChildNode = jsDiv1.lastChild;
            console.log(lastChildNode);
    
            //4、获取该节点的文档的根节点,相当于document
            var rootNode = jsDiv1.ownerDocument;
            console.log(rootNode);
    
            //5、获取当前节点的父节点
            var parentNode = jsDiv1.parentNode;
            console.log(parentNode);
    
    
            var jsDiv2 = document.getElementById("box2");
            //6、获取当前节点的前一个同级节点
            var previousNode = jsDiv2.previousSibling;
            console.log(previousNode);
    
            //7、获取当前节点的后一个同级节点
            var nextNode = jsDiv2.nextSibling;
            console.log(nextNode);
    
    
            //8、获取当前节点的所有的属性节点
            var jsInput = document.getElementById("put");
            var allAttributesArray = jsInput.attributes;
            console.log(allAttributesArray);
    
    
    
        </script>
    </body>
    </html>
    

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>节点常用属性</title>
        <style type="text/css"> 
            #box1{
                width: 200px;height: 200px;background-color: red;
            }
            #box2{
                width: 200px;height: 200px;background-color: green;
            }
            #box3{
                width: 200px;height: 200px;background-color: yellow;
            }
        </style>
    </head>
    <body>
        <div id="box1">
            <p>我是第一个P</p>
            <p>我是第二个P</p>
            <p>我是第三个P</p>
            <p>我是第四个P</p>
        </div>
        <div id="box2"></div>
        <div id="box3"></div>
        <input id="put" type="text" name="in" placeholder="sunck is a good man">
    
        <script type="text/javascript">
            var a = document.getElementById("box2");
    
            
        </script>
    </body>
    </html>
    
    节点属性nodeName、nodeType、nodeValue
    DOM节点动态操作
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>DOM节点动态操作</title>
        <style type="text/css">
            #box{
                width: 300px;height: 300px;background-color: yellow
            }
            #box1{
                width: 100px;height: 100px;background-color: red
            }
            #box2{
                width: 50px;height: 50px;background-color: blue
            }
        </style>
    
    </head>
    <body>
        <div id="box">
            <p>1</p>
            <p>2</p>
        </div>
        
        <script type="text/javascript">
            //创建元素节点
            var jsDiv1 = document.createElement("div");
            jsDiv1.id = "box1";
            console.log(jsDiv1);
    
    
            //父节点.appendChild(子节点);
            //方法将一个新节点添加到某个节点的子节点列表的末尾上
            document.body.appendChild(jsDiv1);
    
    
            //父节点.insertBefore(新节点, 子节点)
            //将新节点添加到父节点的某个子节点的前面
            var jsP = document.createElement("p");
            jsP.innerHTML = "关注我";
    
            var jsD = document.getElementById("box");
            jsD.insertBefore(jsP, jsD.childNodes[3]);
            console.log(jsD);
    
    
            //创建文本节点
            var jsStr = document.createTextNode("什么");
    
            //添加文本节点
            var js2P = jsD.childNodes[1];
            js2P.appendChild(jsStr); 
            
    
    
            //替换节点
            //父节点.replaceChild(新节点, 子节点)
            //将父节点中的某个子节点替换成新节点
            var jsDiv2 = document.createElement("div");
            jsDiv2.id = "box2";
            jsDiv1.parentNode.replaceChild(jsDiv2, jsDiv1);
            
            
    
            //复制节点
            var jsD1 = jsD.cloneNode();//只复制本身
            console.log(jsD1);
            var jsD2 = jsD.cloneNode(true);//复制本身和子节点
            console.log(jsD2);
    
    
    
            alert("删除节点");
            //删除节点
            //父节点.removeChild(子节点)
            //删除父节点下的对应子节点
            jsDiv2.parentNode.removeChild(jsDiv2);
    
    
    
            //offsetParent(参照物父元素)
            var temp = jsD.childNodes[1].offsetParent;
            console.log(temp);
            //当某个元素的父元素或以上元素都未进行CSS定位时,则返回body元素,也就是说元素的偏移量(offsetTop、offsetLeft)等属性是以body为参照物的
            //当某个元素的父元素进行了CSS定位时(absolute或者relative),则返回父元素,也就是说元素的偏移量是以父元素为参照物的
            //当某个元素及其父元素都进行CSS定位时,则返回距离最近的使用了CSS定位的元素
    
    
        </script>
    </body>
    </html>
    
    事件处理程序
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>事件处理程序</title>
    </head>
    <body>
        <!-- 事件:就是用户或者是浏览器执行的某种动作
             事件处理程序:就是响应事件的函数,事件处理程序的名字是以“on”开头的
         -->
    
    
    
        <!-- 1、直接在html标签中给与事件处理程序同名的属性赋值js代码 -->
        <button id="btn1" onclick="console.log('事件处理1')">按键1</button>
    
    
    
        <!-- 2、给与事件处理程序同名的属性赋值一个函数调用语句 -->
        <!-- 使HTML代码与JS代码稍微有点儿分离,不至于第一种那么紧密耦合 -->
        <!-- this代表的是button标签本身 -->
        <button id="btn2" onclick="func2(this)">按键2</button>
    
    
    
        <!-- 3、DOM0级事件处理程序 -->
        <!-- 这种方式也是早期的写法,但好处是可以将JS与HTML完全分离,前提是需要给HTML元素提供一个额外的id属性(或其它能获取该元素对象的方式) -->
        <button id="btn3">按键3</button>
    
    
    
    
        <!-- 4、DOM2级事件处理程序 -->
        <button id="btn4">按键4</button>
    
    
    
        <script type="text/javascript">
    
            //2
            function func2(obj) {
                console.log("事件处理2");
                //obj接收的this的值,表示的是调用该函数的标签节点
                console.log(obj);
    
                console.log(this);//this---window
            }
    
    
    
            //3
            //找到id为btn3的按键
            var jsBtn3 = document.getElementById("btn3");
            //在这里添加事件处理程序
            jsBtn3.onclick = func3;
            function func3() {
                console.log("事件处理3");
                console.log(this);//this---元素节点
            }
            //移除事件处理程序
            //jsBtn3.onclick = null;
            
    
    
    
            //4、是目前最流行的事件处理程序,各大主流浏览器全部支持
            var jsBtn4 = document.getElementById("btn4");
            //添加事件监听器
            //元素节点.addEventListener("事件名",响应事件的函数,布尔值)
            // 事件名 click mouseover mouseout
            // 函数名或者匿名函数
            // 事件流 false 
            jsBtn4.addEventListener("click", func4, false);
            function func4() {
                console.log("事件处理4");
                console.log(this);//this---元素节点
            }
            //注意:可以绑定多个事件,相互之间不影响
            jsBtn4.addEventListener("click", func5, false);
            function func5() {
                console.log("事件处理5");
            }
    
            //移除事件
            //注意:
            //1、参数与添加事件时相同
            //2、添加事件时第二个参数不能是匿名函数
            //jsBtn4.removeEventListener("click", func4, false);
    
    
    
            /**能否使用this,this代表的谁??
             * 1、在标签中使用,代表的是标签本身
             *
             * 2、在函数体中直接使用,代表的是window
             *    在标签中将this作为实参传递到函数中,在函数体中使用形参代表标签本身
             *
             * 3、在事件函数中使用,代表标签本身
             *
             * 4、在事件函数中使用,代表标签本身
             */
            
    
            /**移除事件
             * 1、无法移除
             *
             * 2、无法移除
             *
             * 3、元素节点.onclick = null;
             *
             * 4、元素节点.removeEventLinstener("事件名", 响应函数, false);
             */
    
        </script>
    </body>
    </html>
    
    事件类型
    飞翔的你
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            
            <style type="text/css">
                #box{
                    width: 100px;
                    height: 100px;
                    background-color: red;
                    position: absolute;
                    left: 0;
                    top: 0;
                }
            </style>
            
        </head>
        <body style="height: 1000px;position: relative;">
            
            <div id="box">
                
            </div>
            
            <button onclick="fly()" style="position: absolute; left:200px;top: 200px;">走你</button>
            
            <script type="text/javascript">
                var div = document.getElementById("box")
                
                function fly(){
                    
                    setInterval(function(){
                        var a = parseInt(window.getComputedStyle(div, null).left)
                        div.style.left = a + 10 + "px"
                        var b = parseInt(window.getComputedStyle(div, null).top)
                        div.style.top = b + 10 + "px"
                    }, 100)
                }
                
            </script>
            
        </body>
    </html>
    

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            
            <style type="text/css">
                #box{
                    width: 600px;
                    height: 400px;
                    border: solid 1px red;
                    position: relative;
                }
                #ball{
                    width: 50px;
                    height: 50px;
                    border-radius: 25px;
                    background-color: yellow;
                    position: absolute;
                    left: 0;
                    top: 0;
                }
            </style>
        </head>
        <body>
            
            <div id="box">
                <div id="ball">
                    
                </div>
            </div>
            
            
            <script type="text/javascript">
                var ball = document.getElementById("ball")
                
                var speedx = 2
                var speedy = 2
                
                setInterval(function(){
                    ball.style.left = ball.offsetLeft + speedx + "px"
                    ball.style.top = ball.offsetTop + speedy + "px"
                    
                    if (ball.offsetTop >= 400 - 50 || ball.offsetTop <= 0){
                        speedy *= -1
                    }
                    if (ball.offsetLeft >= 600 - 50 || ball.offsetLeft <= 0) {
                        speedx *= -1
                    }
                    
                }, 10)
                
            </script>
            
        </body>
    </html>
    

    相关文章

      网友评论

          本文标题:JavaScript ☞ day2

          本文链接:https://www.haomeiwen.com/subject/awzgsftx.html