## DOM简单学习:为了满足案例要求
    * 功能:控制html文档的内容
    * 获取页面标签(元素)对象:Element
        * document.getElementById("id值"):通过元素的id获取元素对象

* 操作Element对象:
        1. 修改属性值:
            1. 明确获取的对象是哪一个?
            2. 查看API文档,找其中有哪些属性可以设置
        2. 修改标签体内容:
            * 属性:innerHTML
            1. 获取元素对象
            2. 使用innerHTML属性修改标签体内容

## 事件简单学习
    * 功能: 某些组件被执行了某些操作后,触发某些代码的执行。
        * 造句:  xxx被xxx,我就xxx
            * 我方水晶被摧毁后,我就责备对友。
            * 敌方水晶被摧毁后,我就夸奖自己。

* 如何绑定事件
        1. 直接在html标签上,指定事件的属性(操作),属性值就是js代码
            1. 事件:onclick--- 单击事件

2. 通过js获取元素对象,指定事件属性,设置一个函数

* 代码:
            <body>
                <img id="light" src="img/off.gif"  onclick="fun();">
                <img id="light2" src="img/off.gif">
                
                <script>
                    function fun(){
                        alert('我被点了');
                        alert('我又被点了');
                    }
                
                    function fun2(){
                        alert('咋老点我?');
                    }
                
                    //1.获取light2对象
                    var light2 = document.getElementById("light2");
                    //2.绑定事件
                    light2.onclick = fun2;
                
                
                </script>
            </body>
    
    * 案例1:电灯开关
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>电灯开关</title>
        
        </head>
        <body>
        
        <img id="light" src="img/off.gif">
        
        <script>
            /*
                分析:
                    1.获取图片对象
                    2.绑定单击事件
                    3.每次点击切换图片
                        * 规则:
                            * 如果灯是开的 on,切换图片为 off
                            * 如果灯是关的 off,切换图片为 on
                        * 使用标记flag来完成
        
             */
        
            //1.获取图片对象
            var light = document.getElementById("light");
        
            var flag = false;//代表灯是灭的。 off图片
        
            //2.绑定单击事件
            light.onclick = function(){
                if(flag){//判断如果灯是开的,则灭掉
                    light.src = "img/off.gif";
                    flag = false;
        
                }else{
                    //如果灯是灭的,则打开
        
                    light.src = "img/on.gif";
                    flag = true;
                }
        
        
            }
            
        </script>
        </body>
        </html>

# BOM:
    1. 概念:Browser Object Model 浏览器对象模型
        * 将浏览器的各个组成部分封装成对象。

2. 组成:
        * Window:窗口对象
        * Navigator:浏览器对象
        * Screen:显示器屏幕对象
        * History:历史记录对象
        * Location:地址栏对象

3. Window:窗口对象
        1. 创建
        2. 方法
             1. 与弹出框有关的方法:
                alert()    显示带有一段消息和一个确认按钮的警告框。
                confirm()    显示带有一段消息以及确认按钮和取消按钮的对话框。
                    * 如果用户点击确定按钮,则方法返回true
                    * 如果用户点击取消按钮,则方法返回false
                prompt()    显示可提示用户输入的对话框。
                    * 返回值:获取用户输入的值
             2. 与打开关闭有关的方法:
                close()    关闭浏览器窗口。
                    * 谁调用我 ,我关谁
                open()    打开一个新的浏览器窗口
                    * 返回新的Window对象
             3. 与定时器有关的方式
                setTimeout()    在指定的毫秒数后调用函数或计算表达式。
                    * 参数:
                        1. js代码或者方法对象
                        2. 毫秒值
                    * 返回值:唯一标识,用于取消定时器
                clearTimeout()    取消由 setTimeout() 方法设置的 timeout。
    
                setInterval()    按照指定的周期(以毫秒计)来调用函数或计算表达式。
                clearInterval()    取消由 setInterval() 设置的 timeout。
    
        3. 属性:
            1. 获取其他BOM对象:
                history
                location
                Navigator
                Screen:
            2. 获取DOM对象
                document
        4. 特点
            * Window对象不需要创建可以直接使用 window使用。 window.方法名();
            * window引用可以省略。  方法名();

4. Location:地址栏对象
        1. 创建(获取):
            1. window.location
            2. location

2. 方法:
            * reload()    重新加载当前文档。刷新
        3. 属性
            * href    设置或返回完整的 URL。

5. History:历史记录对象
        1. 创建(获取):
            1. window.history
            2. history

2. 方法:
            * back()    加载 history 列表中的前一个 URL。
            * forward()    加载 history 列表中的下一个 URL。
            * go(参数)    加载 history 列表中的某个具体页面。
                * 参数:
                    * 正数:前进几个历史记录
                    * 负数:后退几个历史记录
        3. 属性:
            * length    返回当前窗口历史列表中的 URL 数量。

## DOM:
    * 概念: Document Object Model 文档对象模型
        * 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作

* W3C DOM 标准被分为 3 个不同的部分:

* 核心 DOM - 针对任何结构化文档的标准模型
            * Document:文档对象
            * Element:元素对象
            * Attribute:属性对象
            * Text:文本对象
            * Comment:注释对象

* Node:节点对象,其他5个的父对象
        * XML DOM - 针对 XML 文档的标准模型
        * HTML DOM - 针对 HTML 文档的标准模型

* 核心DOM模型:
        * Document:文档对象
            1. 创建(获取):在html dom模型中可以使用window对象来获取
                1. window.document
                2. document
            2. 方法:
                1. 获取Element对象:
                    1. getElementById()    : 根据id属性值获取元素对象。id属性值一般唯一
                    2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
                    3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
                    4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
                2. 创建其他DOM对象:
                    createAttribute(name)
                    createComment()
                    createElement()
                    createTextNode()
            3. 属性
        * Element:元素对象
            1. 获取/创建:通过document来获取和创建
            2. 方法:
                1. removeAttribute():删除属性
                2. setAttribute():设置属性
        * Node:节点对象,其他5个的父对象
            * 特点:所有dom对象都可以被认为是一个节点
            * 方法:
                * CRUD dom树:
                    * appendChild():向节点的子节点列表的结尾添加新的子节点。
                    * removeChild()    :删除(并返回)当前节点的指定子节点。
                    * replaceChild():用新节点替换一个子节点。
            * 属性:
                * parentNode 返回节点的父节点。

* HTML DOM
        1. 标签体的设置和获取:innerHTML
        2. 使用html元素对象的属性
        3. 控制元素样式
            1. 使用元素的style属性来设置
                如:
                     //修改样式方式1
                    div1.style.border = "1px solid red";
                    div1.style.width = "200px";
                    //font-size--> fontSize
                    div1.style.fontSize = "20px";
            2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。

## 事件监听机制:
    * 概念:某些组件被执行了某些操作后,触发某些代码的执行。    
        * 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
        * 事件源:组件。如: 按钮 文本输入框...
        * 监听器:代码。
        * 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。

* 常见的事件:
        1. 点击事件:
            1. onclick:单击事件
            2. ondblclick:双击事件
        2. 焦点事件
            1. onblur:失去焦点
            2. onfocus:元素获得焦点。

3. 加载事件:
            1. onload:一张页面或一幅图像完成加载。

4. 鼠标事件:
            1. onmousedown    鼠标按钮被按下。
            2. onmouseup    鼠标按键被松开。
            3. onmousemove    鼠标被移动。
            4. onmouseover    鼠标移到某元素之上。
            5. onmouseout    鼠标从某元素移开。
            
            
        5. 键盘事件:
            1. onkeydown    某个键盘按键被按下。    
            2. onkeyup        某个键盘按键被松开。
            3. onkeypress    某个键盘按键被按下并松开。

6. 选择和改变
            1. onchange    域的内容被改变。
            2. onselect    文本被选中。

7. 表单事件:
            1. onsubmit    确认按钮被点击。
            2. onreset    重置按钮被点击。

java-day26的更多相关文章

  1. Java Day26进程01天

    Java开启多个线程有两种方法,一种继承Thread类,一种实现Runnable接口.具体示例如下: 01继承Thread类 02实现Runnable接口

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. 【Java入门提高篇】Day26 Java容器类详解(八)HashSet源码分析

    前面花了好几篇的篇幅把HashMap里里外外说了个遍,大家可能对于源码分析篇已经讳莫如深了.别慌别慌,这一篇来说说集合框架里最偷懒的一个家伙——HashSet,为什么说它是最偷懒的呢,先留个悬念,看完 ...

  4. java基础-day26

    第03天 java基础加强 今日内容介绍 u BeanUtils概述及使用 u XML简介及约束 u XML解析 第1章   XML简介 1.1  XML基本语法 1.1.1 XML概述 XML全称为 ...

  5. Java学习day26

    进程.多任务 1.例如吃饭的时候玩手机,边上厕所边玩手机,看似是同时做多个事情,本质上我们的大脑在同一时间只做了一件事情,这就是多任务 2.道路窄的时候容易造成拥堵,可以拓宽道路,加多车道,同一个方向 ...

  6. day26(026-网络编程)

    ###26.02_网络编程(网络编程三要素之IP概述) IPv6:8组,每组4个16进制数. 1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f ###26.03_网络编程 ...

  7. 尚硅谷Java——宋红康笔记【day25-day29】

    day25 Map接口 一.Map的实现类的结构: |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) |----HashMap:作为Map的主要实现 ...

  8. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  9. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  10. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

随机推荐

  1. Jenkins 搭建篇

    1.Jenkins 介绍 自动化运维工具:saltstack.jenkins.等.因为他们的目标一样,为了我们的软件.构建.测试.发布更加的敏捷.频繁.可靠 如果运维对git不熟,是无法做自动化部署. ...

  2. 获取项目根目录(非tomact)

    String path; public void main(String[] args) { File file=new File(""); path=file.getAbsolu ...

  3. goland 实用键

    代码补全 option + command + v

  4. LeetCode Arrary Easy 35. Search Insert Position 题解

    Description Given a sorted array and a target value, return the index if the target is found. If not ...

  5. 同域SQL server 做镜像服务器遇到1418错误

    今天遇到了如题所说的错误,查了一天没有看到好的解决方案,因为作者是小白,所以对于解决方案都是代码的那种,完全理解不了. 现在,讲述一下我的解决方法.因为是同域的服务器,这个时候说网络访问不了对方,但是 ...

  6. socket中的绑定

  7. volatile(防止编译器对代码进行优化)

    adj.易变的:无定性的:无常性的:可能急剧波动的 网络挥发性:挥发性的:不稳定的 volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.

  8. HTML5中的Canvas和SVG

    Canvas 和 SVG 都允许我们在浏览器中创建图形,但是它们在根本上是不同的. 1 SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中 ...

  9. Robot Framework:变量与运算

    设置变量                                                                                                ...

  10. How To Use PostgreSQL with Your Ruby on Rails Application on Ubuntu 14.04

    How To Use PostgreSQL with Your Ruby on Rails Application on Ubuntu 14.04 链接来自于:https://www.digitalo ...