前端基础知识

此文章还阔以在我的个人博客浏览https://ruitao.pages.dev​​​​​​

第1章  HTML简介

  1、前端技术简介

  (1)从Web1.0到Web2.0,网页制作已经变成前端开发了。对于前端开发来说,你要学的并不是什么“网页三剑客”,而是“新三剑客”:HTML+CSS+JavaScript。

  (2)前端最核心的技术是HTML、CSS和JavaScript,不过要想达到真正的前端开发工程师水平,我们还得学习更多前端技术,包括HTML5、CSS3、ES6、Vue.js等知识。

  (3)使用前端技术只能开发静态页面。这里要注意一点,即使你使用了JavaScript,做出来的也是静态页面,因为你没有跟服务器进行数据交互。动态页面与静态页面最大的区别在于:是否与服务器进行数据交互

  (4)如果想要开发一个用户体验更好、功能更强大的网站,我们就需要用到后端技术。常见的后端技术有PHP、Java、ASP.NET、Node.js等。

  (5)学习路线:HTML→CSS→JavaScript→jQuery→HTML5→CSS3→ES6→Vue.js→webpack→Node.js。

  2、HTML简介

  (1)学习HTML就是学习各种“标签”,然后针对你想显示什么内容来使用相应的标签;

  (2)在HTML中,元素即标签,例如“p元素”指的就是“p标签”;

 

 

第3章  基本标签

  1、HTML结构

 

  (1)HTML标签

在HTML中,一个网页是从<html>开始,然后到</html>结束的。

  (2)head标签

在HTML中,head标签表示页面的“头部”,这里用于定义网页的“特殊内容”。这些内容都是“不可见”的,一般用于告诉搜索引擎这个页面是干什么的。

head标签的“内部标签

标签

说明

title

定义网页的标题

meta

定义网页的信息(供搜索引擎查看)

style

定义CSS样式

script

定义JavaScript代码

base

直接忽略即可

head标签的“内部标签”也非常重要,不过在学习初期只需要感性认知即可,不需要深入。

  (3)body标签

在HTML中,body标签表示页面的“身体”,这里用于网页的“展示内容”。这些内容都是“可见”的,一般用于给用户展示这个页面是干什么的。

一句话概括head标签和body标签的区别就是:head标签内定义的内容是给“搜索引擎”看的,body标签内定义的内容是给“用户”看的

  2、HTML注释

在HTML中,注释是为了代码更加容易阅读和理解。其中,注释的内容不会在浏览器中显示出来。

语法:

<!--注释的内容-->

 

 

第4章  文本

  1、标签总结

文章标签

标签

语义

说明

h1~h6

header

标题

p

paragraph

段落

br

break

换行

hr

horizontal rule

水平线

div

division

区块(块元素)

span

span

区块(行内元素)

 

文本标签

标签

语义

说明

strong

strong

粗体

em

emphasized

斜体

sup

superscripted

上标

sub

subscripted

下标

 

  2、自闭合标签

    HTML标签分为2种:①一般标签;②自闭合标签,它们有以下的区别。

  (1)一般标签有开始符号和结束符号,但自闭合标签只有开始符号。

  (2)一般标签可以在内部插入文字或其他标签,而自闭合标签不可以。

  3、块元素和行内元素

    HTML根据元素在浏览器的效果,可以分为2类:①块元素;②行内元素。

    常见块元素有h1~h6、p、div等,块元素具有以下2个特点。

  (1)独占一行, 排斥其他元素与其位于同一行(包括块元素和行内元素)。

  (2)块元素内部可以容纳其他块元素或行内元素。

    常见的行内元素有strong、em、span等,行内元素具有以下2个特点。

  (1)可以与其他行内元素位于同一行。

  (2)行内元素内部可以容纳其他行内元素,但不可容纳块元素,不然会出现无法预知的效果。

  4、特殊符号

    我们只需要记住“&nbsp;”(牛逼SP)这一个就可以了。

 

 

第5章  列表

  1、HTML列表

3种列表

标签

语义

说明

ol

ordered list

有序列表

ul

unordered list

无序列表

dl

definition list

定义列表

    对于有序列表和无序列表,我们可以使用type属性来定义列表项符号。此外,定义列表用得较少,了解一下即可。

  2、HTML语义化

    学习HTML目的在于:在需要的地方,使用正确的标签。(语义化)

    HTML语义化的作用有2个:① 提供可读性和可维护性;② 利于搜索引擎优化(SEO)。

 

 

第6章  表格

  1、HTML表格

表格标签

标签

说明

table

表格

caption

标题

thead

表头(语义划分)

tbody

表身(语义划分)

tfoot

表脚(语义划分)

tr

th

表头单元格

td

表行单元格

 

    语法:

<table>

    <caption>表格标题</caption>

    <thead>

        <tr>

            <th>表头单元格1</th>

            <th>表头单元格2</th>

        </tr>

    </thead>

    <tbody>

        <tr>

            <td>表行单元格1</td>

            <td>表行单元格2</td>

        </tr>

        <tr>

            <td>表行单元格3</td>

            <td>表行单元格4</td>

        </tr>

    </tbody>

    <tfoot>

        <tr>

            <td>表行单元格5</td>

            <td>表行单元格6</td>

        </tr>

    </tfoot>

</table>

  2、合并行与合并列

    在HTML中,我们可以使用rowspan属性来合并行,也可以使用colspan属性来合并列。

 

 

第7章  图片

  1、图片标签

    在HTML中,我们使用img标签来显示一张图片。

    语法:

<img src="图片路径" alt="图片描述(供搜索引擎看)" title="图片描述(供用户看)" />

    说明:

    对于img标签,src和alt这两个是必选属性,一定要添加;而title是可选属性,可加可不加。

  2、图片路径

    图片路径分为2种,一种是“绝对路径”,另外一种是“相对路径”。其中我们需要注意一下2点。

  (1)绝对路径是图片在你电脑中的位置,而相对路径是图片相对当前页面的位置。

  (2)在实际开发中,使用的都是相对路径,极少会使用绝对路径(除非是站外路径或者后端路径)。

  3、图片格式

    在网页中,图片格式有2种:一种是“位图”,另外一种是“矢量图”。网页中的图片绝大多数是位图,而不是矢量图,因此我们只需要掌握位图即可。

    在实际开发中,最常见的的位图格式有3种:jpg、png、gif,它们之间的区别如下。

  (1)jpg可以很好地处理大面积色调的图片,适合存储颜色丰富的复杂图片,如照片、高清图片等。此外,jpg体积较大,并且不支持透明。

  (2)png是一种无损格式,可以无损压缩以保证页面打开速度。此外,png体积较小,并且支持透明,但不适合存储颜色丰富的图片。

  (3)gif图片效果最差,不过它适合制作动画。实际上,小伙伴们经常在QQ发的动图都是gif格式的。

 

第8章  超链接

  1、a标签

    在HTML中,我们可以使用a标签来实现超链接。

    语法:

<a href="链接地址" target="_blank">文字或图片</a>

    说明:

    对于target属性,我们只需要掌握“_blank”这一个就可以了。

  2、链接类型

    超链接可以分为2种,一种是“外部链接”,另外一种是“内部链接”。其中锚点链接是一种特殊的内部链接。

 

第9章  表单

    我们常说的表单,指的是文本框、按钮、单选框、复选框、下拉菜单等的统称。在HTML中,所有表单元素都必须放在form标签中。

    表单标签共有4个:input、textarea、select和option。其中,select和option是配合一起使用的。

    几乎所有的表单标签都有一个value属性,这个属性一般都是为了方便JavaScript或者服务器操作数据用的。

  1、input标签

    在HTML中,大部分表单都是使用input标签来实现的,其中input属性取值如下表所示:

type属性取值

属性值

浏览器效果

说明

text

 

单行文本框

password

 

密码文本框

radio

 

单选框

checkbox

 

多选框

button或submit或reset

 

按钮

file

 

文件上传

 

  2、textarea标签

    HTML有3种文本框:单行文本框、密码文本框、多行文本框。其中,单行文本框和密码文本框使用的都是input标签,多行文本框使用的是textarea标签。

    语法:

<textarea></textarea>

  3、select标签和option标签

    在HTML中,下拉列表由select和option这2个标签一起配合使用来实现的。

    语法:

<select>

    <option>选项内容</option>

    ……

    <option>选项内容</option>

</select>

 

第11章  CSS简介

  1、HTML用于控制网页的结构,CSS用于控制网页的外观,JavaScript用于控制网页的行为。

  2、CSS的出现就是为了改造HTML单调的默认外观。

  3、CSS引入方式有3种:外部样式表、内部样式表、行内样式表。

  4、在实际开发中,一般都是使用外部样式表

 

第12章  CSS选择器

  1、id和class

  (1)id就像你的身份证号,而class就像你的名字。同一个页面中,id只允许出现一次,而class允许出现多次。

  (2)id和class都是用来选择元素,以便进行CSS操作或者JavaScript操作的。

  2、CSS选择器

    在CSS中,最常用的选择器有5种:元素选择器、id选择器、class选择器、后代选择器、群组选择器。

 

第13章  字体样式

    在CSS中,常用字体样式属性如下表所示。其中,font-style属性几乎用不上,我们可以直接忽略。

字体样式属性

属性

说明

font-family

字体类型

font-size

字体大小

font-weight

字体粗细

color

字体颜色

  1、font-family

    font-family如果不指定字体,则会采用浏览器默认字体(即宋体)来显示。如果指定多种字体,则多个字体将按从左到右的优先顺序生效;

    在实际开发中,常用的中文字体有微软雅黑、宋体,常用的英文字体有"Times New Roman "、Arial、Verdana;

  2、font-size

    font-size属性取值一般是“像素值”,不会采用“关键字”。在实际开发中,常用字体大小为12px、14px等,比较少用13px、15px等。

  3、font-weight

    在实际开发中,我们只会用到“font-weight:bold;”这一个属性值,其他的几乎用不上。

  4、color

    color属性取值有2种,一种是关键字,如red、green、blue等;另外一种是“16进制RGB值”,如#EEEEEE、#FBF9D0等。

 

第14章  文本样式

    在CSS中,常用的文本样式如下表所示。

文本样式属性

属性

说明

text-indent

首行缩进

text-align

水平对齐

text-decoration

文本修饰

text-transform

大小写

line-height

行高

letter-spacing、word-spacing

字母间距、词间距

  (1)一般来说,text-transform、letter-spacing、word-spacing这3个在实际开发几乎用不上,我们只需要重点掌握其他几个即可。

  (2)除了上表这些,还有一个font-variant属性没有介绍。不过这个属性平常也用不上,因此我们也不需要去了解。

 

第15章  边框样式

    在CSS中,想要为元素定义边框,需要设置3个方面:边框宽度、边框外观、边框颜色。

边框样式属性

属性

说明

border-width

边框宽度

border-style

边框外观

border-color

边框颜色

    其中,边框的简写形式如下:

border: 1px solid red;

    如果想要定义局部边框样式,我们可以使用如下属性:

边框局部样式属性

属性

说明

border-top

上边框

border-bottom

下边框

border-left

左边框

border-right

右边框

 

 

第16章  列表样式

    对于列表来说,常见的CSS属性有2个,如下表所示:

列表样式属性

属性

说明

list-style-type

定义列表项符号

list-style-image

定义列表项图片

    除了上面2个,可能我们还会看到list-style、list-style-position等属性,不过那些属性几乎用不上,可以直接忽略。

    从实际开发角度来看,这一章我们只需要记住“list-style-type:none;”这一个就够了。

 

 

第17章  表格样式

    在CSS中,对于表格样式设置包括:标题位置、边框合并、边框间距。

表格样式属性

属性

说明

caption-side

表格标题位置

border-collapse

表格边框合并

border-spacing

表格边框间距

    这3个属性都是表格所独有的,而且都是针对table元素来定义的。

 

第18章  图片样式

图片样式属性

属性

说明

width

定义图片的宽度

height

定义图片的高度

border

定义图片的边框

text-align

定义图片水平对齐方式

vertical-align

定义文本相对于图片的垂直对齐方式

float

定义文字环绕效果

 

第19章  背景样式

  1、背景颜色

背景颜色属性

属性

说明

background-color

定义背景颜色

  2、背景图片

背景图片属性

属性

说明

background-image

定义背景图片地址

background-repeat

定义背景图片重复

background-position

定义背景图片位置

background-attachment

定义背景图片固定

    在实际开发中,background-attachment用得比较少,只需简单了解一下就行。

 

 

 

第20章  超链接样式

  1、超链接伪类

    对于超链接伪类来说,我们只会用到2种状态:未访问时状态和鼠标经过状态。

    语法:

a{…}

a:hover{…}

    其中,“:hover伪类”可以定义任何一个元素在鼠标经过时的样式,这是一个经常使用的开发技巧。

  2、鼠标样式

    在CSS中,鼠标样式的定义有2种,一种是“浏览器鼠标样式”,另外一种是“自定义鼠标样式”。这2种方式都是使用cursor属性来定义。

 

 

第21章  盒子模型

    在CSS中,页面所有元素都可以看成是一个盒子。每一个盒子是由content(内容)、padding(内边距)、margin(外边距)和border(边框)这四个属性组成的。此外,在盒子模型中,还有宽度width和高度height两大辅助性属性。

 

CSS盒子模型

CSS盒子模型的组成部分

属性

说明

content

内容,可以是文本或图片

padding

内边距,用于定义内容与边框之间的距离

margin

外边距,用于定义当前元素与其他元素之间的距离

border

边框,用于定义元素的边框

 

 

第22章  浮动布局

  1、文档流

    在正常文档流中,一个页面从上到下会被分为一行一行,其中块元素独占一行,相邻行内元素在每一行中按照从左到右排列直到该行排满。

    为了更好地进行布局,我们有时候需要使用浮动或者定位来使得元素脱离文档流。

  2、浮动布局

    如果你想要实现两个或者多个块元素横向排列,就应该使用浮动。浮动最常用于实现水平方向上的并排布局,例如两列布局、多列布局。

  3、清除浮动

    我们一般都是在浮动元素后面再增加一个空元素,然后为这个空元素定义“clear:both;”来清除浮动。

 

第23章  定位布局

    在CSS中,我们都是使用position属性来实现定位布局。定位布局有4种,如下表所示。

position属性取值

属性值

说明

fixed

固定定位

relative

相对定位

absolute

绝对定位

static

静态定位(默认值)

    默认情况下,固定定位和绝对定位的位置是相对于浏览器而言,而相对定位的位置是相对原始位置而言。这里注意一个前提:默认情况下。

 

第24章  JavaScript简介

  1、HTML用于控制网页的结构,CSS用于控制网页的外观,JavaScript用于控制网页的行为;

  2、推荐2个前端开发工具:Hbuilder和vscode。建议初学者使用Hbuilder。

  3、JavaScript常用引入方式有3种:①外部JavaScript;②内部JavaScript;③元素事件JavaScript;

 

第25章  语法基础

    对于这一章来说,我们需要清楚这5个概念:变量、数据类型、运算符、表达式、语句。可以根据下图来理解。

 

分析图

  1、变量

  (1)所有变量都是用var声明的

  (2)对于变量命名,尽量取有意义的英文名字,以便一眼就可以看出来这是干嘛的

  (3)变量的值是可以变的

  2、数据类型

    在JavaScript中,常见的数据类型有6种:

  (1)数字

  (2)字符串

  (3)布尔值

  (4)转义字符

  (5)未定义值

  (6)空值

  3、运算符

    在JavaScript中,常见的运算符有5种:

  (1)算术运算符

  (2)赋值运算符

  (3)比较运算符

  (4)逻辑运算符

  (5)条件运算符

  4、表达式与语句

    1+2是一个表达式,而整一句代码“var a=1+2;”就是一个语句。

 

表达式与语句

  5、注释

//单行注释

/*多行注释*/

 

 

 

 

第26章  流程控制

    这一章我们学习了3种流程控制的结构:顺序结构、选择结构、循环结构。为什么这一章叫做“流程控制”呢?大家好好琢磨“流程控制”这4个字,然后想一下这一章我们都学了什么就明白了。

  1、选择结构

选择结构指的是根据“条件判断”来决定执行哪一段代码。选择结构有单向选择、双向选择以及多向选择3种。

在JavaScript中,选择结构共有2种方式,一种是if语句,另外一种是switch语句。其中if语句又包括:

  (1)单向选择:if…

  (2)双向选择:if…else…

  (3)多向选择:if…else if…else…

  (4)if语句的嵌套

  2、循环结构

    循环语句指的是在“满足某个条件下”循环反复地执行某些操作的语句。

    在JavaScript中,循环语句共有以下3种:

  (1)while语句

  (2)do...while语句

  (3)for语句

 

第27章  初识函数

    在JavaScript中,函数指的是一个用大括号“{}”括起来的、可重复使用的、具有特定功能的语句块。如果想要使用函数,一般需要2步:

    ① 定义函数;

    ② 调用函数;

  1、函数的定义

    在JavaScript中,函数可以分2种,一种是“没有返回值的函数”,另外一种就是“有返回值的函数”。

  (1)没有返回值的函数

    没有返回值的函数,指的是函数执行完就算了,不会返回任何值。

    语法:

function 函数名(参数1 , 参数2 ,..., 参数n)

{

    ……

}

  (2)有返回值的函数

    有返回值的函数,指的是函数执行完了之后,会用return语句返回一个值,这个返回值可以供我们使用。

    语法:

function 函数名(参数1 , 参数2 ,..., 参数n)

{

    ……

    return 返回值;

}

  2、函数的调用

    如果一个函数仅仅是定义而没有被调用的话,则函数本身是不会执行的(认真琢磨这句话,非常重要)。

    JavaScript函数调用方式很多,常见有4种:

    ① 直接调用

    ② 在表达式中调用

    ③ 在超链接中调用

    ④  在事件中调用

    此外,对于嵌套函数和内置函数,我们稍微看看就行,不需要深入了解。

    【后话】:函数的内容是极其复杂的,我们在这一章学到的只是一点皮毛而已。高级部分如this、闭包、类、继承、递归函数、高阶函数等,都与函数有关。事实上,函数在JavaScript又被称为“第一等公民”,可见其重要程度。对于JavaScript进阶部分,可以关注本书配套网站:绿叶学习网(http://www.lvyestudy.com)。

 

第28章  字符串对象

    在JavaScript中,字符串对象常用的属性和方法如下所示。

字符串对象的属性

属性

说明

length

获取字符串的长度

 

字符串对象的方法

方法

说明

toLowerCase()、toUpperCase()

大小写转换

charAt()

获取某一个字符

substring()

截取字符串

replace()

替换字符串

split()

分割字符串

indexOf()、lastIndexOf()

检索字符串的位置

 

    实际上,字符串对象的属性和方法还有很多,不过我们只需要掌握上面这些就够了,不需要浪费时间和精力去记忆其他没用的东西。对于初学者来说,可能很多人会问上表中的属性和方法都有什么用。其实字符串更多的是结合其他技术一起使用,等真正到了实战开发的时候就知道了。所以我们一定要认真掌握上面的每一种属性和方法,把基础打好。

 

第29章  数组对象

    在JavaScript中,我们可以使用“数组”来存储一组“相同数据类型”(一般情况下)的数据类型。

    数组的创建一般用简写形式,如[1,2,3,4,5]。数组的获取和赋值,都是使用下标的方式,特别注意一点:数组的下标是从0开始,而不是从1开始的。

数组的属性

属性

说明

length

获取数组的长度

数组的方法

方法

说明

slice()

截取数组部分

unshift()

添加数组元素,在开头添加

push()

添加数组元素,在末尾添加

shift()

删除数组元素,在开头删除

pop()

删除数组元素,在末尾删除

sort()

数组大小比较

reverse()

数组颠倒顺序

join()

将数组元素连接成字符串

 

第30章  时间对象

    对于日期时间对象的方法来说,getXxx()用于获取时间,setXxx()用于设置时间。

用于获取时间的getXxx()

方法

说明

getFullYear()

获取年份,取值为4位数字

getMonth()

获取月份,取值为0(一月)到11(十二月)之间的整数

getDate()

获取日数,取值为1~31之间的整数

getHours()

获取小时数,取值为0~23之间的整数

getMinutes()

获取分钟数,取值为0~59之间的整数

getSeconds()

获取秒数,取值为0~59之间的整数

 

用于设置时间的setXxx()

方法

说明

setFullYear()

可以设置年、月、日

setMonth()

可以设置月、日

setDate()

可以设置日

setHours()

可以设置时、分、秒、毫秒

setMinutes()

可以设置分、秒、毫秒

setSeconds()

可以设置秒、毫秒

 

第31章  数学对象

对于Math对象的属性来说,我们只需要掌握Math.PI就行。对于Math对象的方法来说,我们需要掌握下表中这些方法就行了。

Math对象常用方法

方法

说明

max(a,b,…,n)

返回一组数中的最大值

min(a,b,…,n)

返回一组数中的最小值

sin(x)

正弦

cos(x)

余弦

tan(x)

正切

asin(x)

反正弦

acos(x)

反余弦

atan(x)

反正切

atan2(y, x)

反正切(注意x、y的顺序)

floor(x)

向下取整

ceil(x)

向上取整

random()

生成随机数

 

 

第32章  DOM基础

1、DOM是什么?

    对于DOM,我们总结出以下3点。

  (1)DOM操作,可以简单理解成:元素操作。

  (2)一个HTML文档就是一棵节点树,页面中的每一个元素就是一个树节点。

  (3)每一个元素就是一个节点,而每一个节点就是一个对象。我们在操作元素时,就是把这个元素看成一个对象,然后用这个对象的属性和方法进行操作。

2、节点类型

    DOM节点共有12种类型,不过常见的只有3种(其他不用管):

  (1)元素节点,nodeType值为1

  (2)属性节点,nodeType值为2

  (3)文本节点;nodeType值为3

3、获取元素

    在JavaScript中,我们可以通过6种方式来获取指定元素:

  (1)getElementById()

  (2)getElementsByTagName()

  (3)getElementsByClassName()

  (4)querySelector()和querySelectorAll()

  (5)getElementsByName()

  (6)document.title和document.body

    虽然这些方法名又长又臭,不过根据英文意思来记忆就很轻松啦。此外对于这些获取元素的方式,有几点需要我们注意的。

  (1)只有getElementsByTagName()可以操作动态DOM,其他的都不行。

  (2)querySelector()表示选取满足选择条件的第1个元素,querySeletorAll()表示选取满足条件的所有元素。

  (3)当你选取的只有一个元素时,querySelector()和querySelectorAll()是等价的。

  (4)getElementsByName只用于表单元素,准确来说一般用于单选按钮和复选框。

  (5)getElementsByTagName()、getElementsByClassName()、getElementsByName()这3个方法返回的都是一个类数组(elements嘛),想要准确获取其中一个元素,可以使用数组下标来实现。

4、DOM操作

DOM操作的方法

方法

说明

createElement()

创建元素节点

createTextNode()

创建文本节点

appendChild

插入元素,在父元素最后一个子元素后面插入

insertBefore()

插入元素,在父元素任意一个子元素前面插入

removeChild()

删除元素

cloneNode()

复制元素

replaceChild()

替换元素

    在HTML中直接添加元素,这是静态方法。而使用JavaScript添加元素,这是动态方法。这一章介绍的这些就是动态方法,也叫动态DOM操作。动态DOM操作在实际开发中用途是非常广的。

第33章  DOM进阶

  1、HTML属性操作

    在JavaScript中,有2种操作HTML元素属性的方式,一种是用“对象属性”,另外一种是用“对象方法”。不管是用哪种方式,都涉及2种操作:①获取HTML属性值;②设置HTML属性值。

  (1)“对象属性”方式

obj.attr                     //获取值

obj.attr = "值"               //设置值

  (2)“对象方法”方式

obj.getAttribute("attr")        //获取值

obj.setAttribute("attr","值")    //设置值

对于操作HTML属性的2种方式,我们总结一下。

   ①“对象属性方式”和“对象方法方式”,这两种方式都不仅可以操作静态HTML的属性,也可以操作动态DOM的属性。

   ②只有“对象方法方式”才可以操作自定义属性。

  2、CSS属性操作

  (1)获取值

getComputedStyle(obj).attr

  (2)设置值

obj.style.attr = "值";        //使用style对象

obj.style.cssText = "值"      //使用cssText属性

  3、DOM遍历

DOM遍历的属性

属性

说明

parentNode

查找父元素

childNodes、firstChild、lastChild

查找子元素,包含文本节点

children、firstElementChild、lastElementChild

查找子元素,不包含文本节点

previousSibling、nextSibling

查找兄弟元素,包含文本节点

previousElementSibling、nextElementSibling

查找兄弟原始,不包含文本节点

  4、innerHTML和innerText

    在JavaScript中,我们可以使用innerHTML属性很方便地获取和设置一个元素的“内部元素”,也可以使用innerText属性获取和设置一个元素的“内部文本”。

 

第34章  事件基础

    事件操作是JavaScript的核心,不懂事件操作,JavaScript等于白学。在JavaScript中,事件调用方式有2种:①在script标签中调用;②在元素中调用。

鼠标事件

事件

说明

onclick

鼠标单击

onmouseover

鼠标移入

onmouseout

鼠标移出

onmousedown

鼠标按下

onmouseup

鼠标松开

onmousemove

鼠标移动

键盘事件

事件

说明

onkeydown

键盘按下

onkeyup

键盘松开

表单事件

事件

说明

onfocus

获取焦点

onblur

失去焦点

onselect

选择文本

onchange

选择某一项触发(单选框、复选框、下拉菜单)

 

编辑事件

事件

说明

oncopy

用于防止文本被复制

onselectstart

用于防止文本被选取

oncontextmenu

用于禁止鼠标右键

页面事件

事件

说明

window.onload

页面加载完毕触发

window.onunload

离开页面触发

    上面列出来的都是JavaScript中最常用的事件,对于不常用的,我们已经舍弃掉了。学完这些,我们可以自己尝试开发一下各种效果了,如图片轮播、Tab选项卡、回顶部等。

    此外,这些事件大多数都是针对PC端的,像移动端还有一些特殊的事件如touchstart、touchend、touchemove等,感兴趣的小伙伴可以自行去了解一下。

 

 

第35章  事件进阶

  1、事件监听器

    在JavaScript中,想要给元素添加一个事件,其实我们有2种方式:①事件处理器;②事件监听器。

obj.addEventListener("click", function () {……);}, false);

obj.onclick = function () {……};

    如果想要为一个元素添加多个相同事件,必须要用事件监听器,而不能用事件处理器。

  (1)绑定事件

obj.addEventListener(type , fn , false)

  (2)解绑事件

obj.removeEventListener(type , fn , false);

    removeEventListener()只能解除“事件监听器”添加的事件,如果要解除“事件处理器”添加的事件,需要用“obj.事件名=null;”方法来实现。

  2、event对象

    当一个事件发生的时候,这个事件有关的详细信息都会临时保存到一个指定的地方,这个地方就是event对象。

event对象的属性

属性

说明

type

事件类型

keyCode

键码值

shiftKey

是否按下shift键

ctrlKey

是否按下Ctrl键

altKey

是否按下Alt键

 

  3、this

    在事件操作中,可以这样理解:哪个DOM对象(元素节点)调用了this所在的函数,那么this指向的就是哪个DOM对象

 

第36章  window对象

    一个窗口就是一个window对象,这个窗口里面的HTML文档就是一个document对象,document对象是window对象的子对象。

window对象下的重要子对象

子对象

说明

document

文档对象,用于操作页面元素

location

地址对象,用于操作URL地址

navigator

浏览器对象,用于获取浏览器版本信息

 

  1、窗口操作

  (1)打开窗口

window.open(url, target)

  (2)关闭窗口

window.close()

  2、对话框

3种对话框

方法

说明

alert()

仅提示文字,没有返回值

confirm()

具有提示文字,返回“布尔值”(true或false)

prompt()

具有提示文字,返回“字符串”

  3、定时器

    在JavaScript中,我们可以使用setTimeout()方法来“一次性”地调用函数,并且可以使用clearTimeout()来取消执行setTimeout()。

    我们也可以使用setInterval()方法来“重复性”地调用函数,并且可以使用clearInterva()来取消执行setInterval()。

  4、location对象

location对象的属性

属性

说明

href

当前页面地址

search

当前页面地址“?”后面的内容

hash

当前页面地址“#”后面的内容

  5、navigator对象

    在JavaScript中,我们可以使用window对象下的子对象navigator来获取浏览器的类型。

 

第37章  document对象

    document对象其实是window对象下的一个子对象来的,它操作的是HTML文档里所有的内容。document对象常用的属性和方法如下。

document对象常用的属性

属性

说明

document.title

获取文档的title

document.body

获取文档的body

document.URL

当前文档的URL

document.referrer

返回使浏览者到达当前文档的URL

document对象常用的方法

方法

说明

document.getElementById()

通过id获取元素

document.getElementsByTagName()

通过标签名获取元素

document.getElementsByClassName()

通过class获取元素

document.getElementsByName()

通过name获取元素

document.querySelector()

通过选择器获取元素,只获取第1个

document.querySelectorAll()

通过选择器获取元素,获取所有

document.createElement()

创建元素节点

document.createTextNode()

创建文本节点

document.write()

输出内容

document.writeln()

输出内容并换行

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值