课堂小记---JavaScript(3)
操作DOM
var newDOM=DOM元素.cloneNode(参数);
克隆(复制)当前节点,参数默认为false只复制当前节点元素。参数为true时复制当前元素及其后代和所有属性。
day06
1、函数封装中的默认值问题
在函数定义后的调用过程中,如果函数需要有参数传入,而调用时传入参数不全,就会产生参数未定义的报错。
解决方法可以在函数中为传入参数定义默认值。
function(x,y){
x = x || "abc" ;
y = y || "123" ;
}
" || ",或运算符会判断是否有x,y参数,如果有则赋值为x,y,如果没有则会赋值为或运算符后面的内容。
day08
1、
可以给html标签添加自定义属性,并且可以用js获取到
方法:XXX.getAttribute("");XXX.setAttribute("")
注意:自定义属性不可以直接通过标签对象属性调用,标签对象直接调用属性只能是html标签自带属性。
2、
JS不能获取行内样式之外的样式。
需要 getComputedStyle("xxx").width
顾名思义计算后的样式,因为浏览器解析页面和样式是分开的。
IE8及之前的版本不支持上述方法,需要用
getCurrentStyle("xxx").width
day09
1、懒了,截图
2、计算属性
可以通过计算属性获取可以直接使用的属性值(纯数字):offsetWidth、offsetHeight、offsetTop、offsetLeft
每次获取时才计算出位置,不固定,无法修改只能实时获取属性值。
offsetParent可以直接获取有定位的父元素,即子元素定位的参照元素。
3、文档碎片
var frag = document.createDocumentFragment();
创建一个文档缓存,用于暂时存储新创建的元素。
4、鼠标事件
兼容写法:IE8及以下版本中鼠标事件event存在window下。
function(evt){
var e = evt || event ;
}
获取鼠标位置的几个属性:
offsetX,offsetY 相对于触发事件的元素中的位置
clientX,clientY 相对于当前可视区域中的位置
pageX,pageY 相对于整个页面中的位置
注意pageX,Y有兼容问题,IE8及之前版本和火狐老版本不支持
5、
找到元素之后可以通过 元素.aaa=xxx; 在内存中给元素添加值为xxx的aaa属性;
day10
1、阻止默认事件
通知浏览器不要执行与事件关联的默认动作。
e.preventDefault(); IE8以下不支持
兼容IE8及以下
e.returnValue=false;
兼容写法: e.preventDefault ? e.preventDefault() : e.returnValue=false ;
2、阻止右键菜单
点击右键触发的函数 document.oncontextmenu = function (){ }
添加上述阻止默认事件即可。
3、阻止事件传播
e.stopPropagation();阻止事件向上传播。
兼容IE写法:
e.stopPropagation ? e.stopPropagation() : e.cancleBubble = true ;
day11
1、事件的冒泡和事件的捕获
事件的捕获是指事件触发后从顶层元素向下传播,直到最底层。
捕获事件写法:addEventListener("事件",true);(第二个参数决定该事件是冒泡还是捕获,默认值是false,冒泡)
捕获事件同样可以使用阻止事件传播的方法阻止。
当多层结构中捕获现象和冒泡现象同时存在时:先执行捕获事件,再执行冒泡事件。
当同一个元素上捕获现象和冒泡现象同时存在时,会按照代码顺序执行。
addEventlistener()方法不会互相覆盖,同一个元素可以绑定多个相同的事件不冲突。执行顺序按照代码顺序。
2、事件代理
简单理解:将本该自身触发的事件方法“代理(委托)”给父元素或更高层级元素,利用事件的冒泡来触发被“代理”的事件,达到预期的效果。
e.target()方法可以返回触发该事件的元素对象。
兼容写法:
var target = e.target || e.srcElement ;
事件代理可应用于子元素数量很多的情况。例如下拉选择菜单中的单击事件。
3、onmouseenter 和 onmouseleave 事件
onmouseenter 事件类似于 onmouseover 事件。 唯一的区别是 onmouseenter 事件不支持冒泡
课堂小记---JavaScript(3)的更多相关文章
- 课堂小记---JavaScript(4)
day11 1.正则表达式 去掉首尾的空格或者其他字符 replace方法可传入函数可分组. 以下为分组 基础正则表达式语法: /** * 正则表达式是一个对象类型 */ // 匹配字符串中的che ...
- 课堂小记---JavaScript(2)
本阶段难点疑点梳理 1.关于switch中default的使用: default同case功能一样,区别在于并不匹配任何信息,只有当case中无任何匹配的时候才会执行default.需要注意的是,这是 ...
- 课堂小记---JavaScript(1)
day01 1.数据类型 number string boolean undefined object function 加号具有两种功能,数字相加 和 字符串拼接.加号两边只要碰见字符串,则执行字 ...
- 杨校老师课堂之JavaScript右下角广告弹框教程
案例制作思路: 1.先制作界面 添加一个盒子包含一个按钮,使盒子绝对定位在右上角 添加一个大盒子,同理,将盒子居于左下角:其中内部包含一个顶端盒子和底部盒子 顶端盒子因为是属于大盒子内部的存在,所以宽 ...
- 杨老师课堂之JavaScript定时器_农夫山泉限时秒杀案例
预览效果图: 使用到的知识点: 定时器 setInterval(函数,毫秒):在指定的毫秒数后调用函数或执行一段代码 取消定时器 clearInterval:取消由setInterval设置的定时器 ...
- javascript小记-javascript运行机制
任何语言的运行过程中,都会有编译和执行: 对于传统编译型语言来说,编译步骤分为:词法分析.语法分析.语义检查.代码优化和字节生成.但对于解释型语言来说,通过词法分析和语法分析得到语法树后,就可以开始解 ...
- 松软科技Web课堂:重要->JavaScript 调试
错误总会发生,每当您写一些新的计算机代码时. JavaScript 调试 在没有调试器的情况下写 JavaScript 是有难度的. 您的代码中也许包含了语法错误,或者逻辑错误,这些都难以诊断. 通常 ...
- 松软科技前端课堂:JavaScript 数值方法
Number 方法帮助您处理数值. Number 方法和属性 原始值(比如 3.14 或 2016),无法拥有属性和方法(因为它们不是对象). 但是通过 JavaScript,方法和属性也可用于原始值 ...
- 松软科技前端课堂:JavaScript 对象
真实生活中的对象.属性和方法 在真实生活中,汽车是一个对象. 汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法: 对象 属性 方法 car.name = porsche car.model = ...
随机推荐
- (二叉树 BFS) leetcode 107. Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- Go package(1) time 用法
golang使用的版本: go version go1.10.3 一:功能介绍 time的一些功能,比如时区,像linux中的定时器,时间计算等 格式化时间 时区(Location) 时间计算 Tic ...
- 编写高质量的Python代码系列(三)之类与继承
用Python进行编程时,通常需要编写心累,并定义这些类应该如何通过其接口及继承体系与外界交互.本节讲解如何使用类和继承来表达对象所以更具备的行为. 第二十二条:尽量用辅助类来维护程序的状态,而不要用 ...
- 解决beego1.12新版本没有log.info
去https://github.com/astaxie/beego/中,找到旧的版本下载其log.go 至本地beego目录中
- 【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理
一.简介 最近马三为公司开发了一款触发器编辑器,对于这个编辑器策划所要求的质量很高,是模仿暴雪的那个触发器编辑器来做的,而且之后这款编辑器要作为公司内部的一个通用工具链使用.其实,在这款触发器编辑器之 ...
- MySQL启动出现The server quit without updating PID file错误解决办法
启动mysql服务的时候报下面这个错: 之间网上搜了各种办法,有重新初始化的(这怎么可能,里面还有数据...),有修改启动脚本的等等,但是都没用. 其实解决办法非常简单粗暴,那就是把/etc/my.c ...
- Kafka(二)设计原理
1.持久性 kafka使用文件存储消息,这就直接决定kafka在性能上严重依赖文件系统的本身特性.且无论任何OS下,对文件系统本身的优化几乎没有可能.因为kafka是对日志进行append操作,因此磁 ...
- 剑指Offer-翻转单词顺序列
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...
- 20175333曹雅坤 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- hyperledger fabric部署总结
之前在有道云笔记上分享过,但想想还是搬到这里来吧,以后统一方便整理自己的知识进入正题.... 之前在调研 hyperledger fabric,其实部署说明官网都有,只是东西都是国外的照着操作也会遇到 ...
