zoukankan      html  css  js  c++  java
  • DOM入门学习笔记


    1.课前说明
         DOM就是使用js操控界面的空间
         js和DOM,就像C#语法和.netFramework的关系
         js可以定义变量,定义函数,但是说和用户进行交互,还是用DOM实现,就像alert(),也是有定义DOM中的
         DOM可以让我们程序员操纵html上的动态交互,比如:点击按钮

    2.DOM入门
         DOM就是HTML页面的模型,将每一个标签作为一个对象,js通过调用DOM中的属性,方法就可以对页面中的文本框,层等元素进行编程控制,比如通过操作文本框的DOM对象,就可以读取文本框中的值,设置文本框中的值.
         JavaScript->Dom 就是 C#->.Net Framework
         Dom也想winForm一样,通过事件.属性,方法进行编程
         css+js+Dom = DHTML(动态页面)

    3.事件
         事件 ,直接在body部分,点击body部分就会弹出对话框
         <body onmousedown="alert('点我了')">
         </body>
         另一种使用方式
         <head>
             <title></ title>
            <script type="text/javascript">
                function bodymousedown() {
                alert( '点我了!');
                alert( '地方');
               }
            </script>
         </head>
         <body onmousedown="bodymousedown()">
         </body>

    4.动态设置事件
         可以再代码中动态设置事件响应函数,就像.net中btn.Click+=一样
         function f1() {
                alert( '我是f1');
            }
            function f2() {
                alert( '我是f2');
            }
         ...............
         <input type="button" onclick="document.onclick=f1" value="关联事件1" />
         <input type="button" onclick="document.onclick=f2" value="关联事件2" />

    5.window对象1 -------- confirm
         window对象道标当前浏览器窗口,使用window对象的属性,方法的时候可以省略window,比如window.alert('a') 可以省略成alert('a')
         (1)alert()方法,弹出信息对话框
         (2)confirm方法,显示"确定","取消"对话框,如果按了【确定】按钮,就返回true,否则就false程序如下:    一般删除操作,询问客户时候决定执行
          <script type="text/javascript" >
            function confirmdemo() {
                if (confirm("是否进入?" )) {
                    alert( "进入了" );
                }
                else{
                    alert( "取消进入" );
                }
            }
        </script>
         .....................
         <input type="button" value="confirmtest" onclick="confirmdemo()" />

    6.window对象2 ----------  navigate, setInterval, clearinterval
        (3) 重新导航到指定的地址: navigate("http://www.baidu.com")  注意:这个只是在IE里可以运行.在FireFox里运行不了
         <input type="button" value="navigatetest" onclick="navigate('DOM1.htm')"/>
        (4)setInterval, 每个一段时间执行指定代码,类似winform的timer(), 
              (返回值为定时器的标志,取消定时操作时会用到)setInterval(代码字符串,间隔时间单位ms)
              var intervalId;
              function setIntervaldemo() {
                    intervalId = setInterval( "alert('hello')", 5000); //注意被执行的代码是字符串格式,也可以写一个匿名函数
            }
         .................................
              <input type="button" value="setInterval测试" onclick ="setIntervaldemo()" />
         (5)clearInterval 取消setInterval的定时执行
              <input type="button" value="停止Interval" onclick ="clearInterval(intervalId)" />

    7.window对象3
         (6)setTimeout也是执行定时执行,但是不像setInterval那样重复定时执行,只执行一次,clearTimeout也是消除定时,很好区分
             var timeoutId = setTimeout("alert('你好a')" , 10000);
         ......
              <input type="button" value="停止Timeout" onclick ="clearTimeout(timeoutId)" />

    8.window对象3
         案例:实现标题栏走马灯效果,也就是浏览器的标题文字每隔500ms向右滚动一下.标题为document.title属性,实现代码
         点击[向左]按钮就向左连续滚动,点击[向右]按钮就向右连续滚动

    js的substring语法

    stringObject.substring(start,stop)
    
    start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
    stop

    可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

    如果省略该参数,那么返回的子串会一直到字符串的结尾。

         程序:
      
      <head>
        <title> 新学期迎接新同学 </title>
        <script type="text/javascript">
            var leftId;  //标志做滚动定时器标记
            var rigthId;  //标志做滚动定时器标记
            function scrollLeft() { //左滚动一个字
                var title = document.title;
                var firstch = title.charAt(0); //第一个字
                var leftstr = title.substring(1, title.length);  //剩下的字
                document.title = leftstr + firstch; //连接起来
            }
            function scrollRight() { //右滚动一个字
                var title = document.title;
                var firstch = title.charAt(title.length-1); //最后一个字
                var leftstr = title.substring(0, title.length-1); //前面的字
                document.title = firstch + leftstr; //连接起来
            }
            function clearsroll() {  //取消所有定时器,即取消所有滚动
                if (leftId != 'undefined' ) {
                    clearInterval(leftId);
                }
                if (rigthId != 'undefined' ) {
                    clearInterval(rigthId);
                }
            }
            function scrollLeftStart() {
                clearsroll()
                leftId = setInterval( "scrollLeft()", 500);
            }
            function scrollRightStart() {
                clearsroll()
                rigthId = setInterval( "scrollRight()", 500);
            }
        </script>
    </head>
    <body>
    <input type="button" value="向左" onclick="scrollLeftStart()" />
    <input type="button" value="向右" onclick="scrollRightStart()" />
    </body>



    9.body,document对象的事件
         (1)onload:网页加载完毕时触发,浏览器是一边下载文档,一边解析执行,可能会出现js执行时需要操作的某个元素,这个元素还没加载,如果这样就要把操作代码放到body的onload事件中,或者可以吧js放到元素之后,元素的onload时间是自己加载完毕时触发,body onload才是全部加载完成
         <body onload="btn.value='OK'">
              <input id="btn" type="button"  />
         </body>
         (2)onunload:网页关闭(或者离开)后触发. 后退,刷新,重加载,关闭都会触发
         
         (3)onbeforeunload:在网页准备关闭(或离开)后触发
         在时间中为"window.event.returnValue"赋值(要显示的警告信息),这样窗口离开(比如前进,后退,关闭)就会弹出确认消息
         <body onload="btn.value='OK';" onunload="alert('大爷慢走啊!');" onbeforeunload="window.event.returnValue='文章会被丢失'">
         <input type="button" value="模式对话框" onclick ="showModelessDialog('DOM1.htm')" />
         </body>
         
    10.其他事件
         除了特有的属性之外,当然还有通用的HTML元素的事件:onclick(单击),ondbllick(双击),onkeydown(按键按下),onkeypress(点击按键),onkeyup(按键释放),onmousedown(鼠标按下),onmousemove(鼠标移动),onmouseout(鼠标离开元素范围),onmouseover(鼠标移动到元素范围),onmouseup(鼠标按键释放)等

    11.window对象的属性1
         window.location.href 重新导向新的地址,和navigate方法效果一样,window.location.reload()刷新页面
        < body onunload ="alert('您刷新了')">
              < input type ="button"  value ="href" onclick ="alert(location.href)" />
              < input type ="button"  value ="重定向" onclick ="location.href='DOM1.htm'" />
              < input type ="button"  value ="刷新" onclick ="location.reload()" />
         </ body>
         
         window.event是非常重要的属性,用来获得发生事件时的信息,事件不局限于window对象的事件,所有元素的事件都可以通过event属性取到相关信息.类似于winform的e(EventArg)
         •altKey属性,bool属性,表示发生事件时alt键是否被按下,类似的还有ctrlKey,shiftKey,例子:
         < input type ="button"  value ="点击" onclick ="if(event.ctrlKey){alert('按下了ctrl健')}else{alert('普通点击')}" />
         •clientX,clientY发生事件时鼠标在客户区的坐标; screenX, screenY,发生事件时鼠标在屏幕上的坐标; offsetX,offsetY,发生事件时鼠标相对于事件源(比如点击按钮时触发onclick)的坐标.
         •returnValue属性,如果将returnValue设置为false,就会取消默认事件的处理.在超链接的onclick里面禁止访问href的页面,在表单
         •scrElement,获得事件源对象
         •keyCode,发生时间时的按键值
         •button,发生时间时鼠标按键,1为左键,2为右键,3为左右两键同时按
         < input type ="button"  value ="禁止点击右键" onmousedown ="if(event.button == 2){alert('请不要用右键点击')}" />

    12.window对象的属性2
         •clipboardData对象,对黏贴板的操作.clearData("Text")清空粘贴板, .getData("Text")得到粘贴板的信息,返回值为粘贴板中的内容;  .setData("Text".val),设置粘贴板中的值
         案例:复制地址给好友
         < input type ="button" value ="分享给好友" onclick ="clipboardData.setData('Text','我发现一个好玩的网站,很黄很暴力!'+location.href);alert('已经粘贴成功!');" />








  • 相关阅读:
    前端框架搭建
    npm的镜像和淘宝互换
    grunt,gulp,webpack前端打包工具的特性
    react 文章
    大数据学习08_HDFS2
    大数据学习07_HDFS1
    大数据学习06_zookeeper3_javaAPI操作
    大数据学习05_zookeeper2
    大数据学习04_zookeeper1
    大数据学习03_Linux集群搭建_辅助工具的安装
  • 原文地址:https://www.cnblogs.com/zhujinghui/p/3369233.html
Copyright © 2011-2022 走看看