1.事件类型有哪些?
鼠标事件:
mouseover mouseout mouseenter mouseleave click dblclick
mousedown mouseup mousemove mousewheel contextmenu
表单事件:
focus blur input change select submit reset
页面事件:
scroll load resize
键盘事件:
keydown(可以使得按下所有键触发) keypress(只有输入键触发) keyup
2.阻止冒泡的方法?
stopPropagetion()
3.阻止事件默认行为方法?
preventDefalt()
4.如何获取元素的宽高?
mybox.style.width // style行列式的宽高
getComputedStyle // 获取行间样式和样式表属性
mybox.clientWidth // width + padding
mybox.offsetWidth // width + padding + border
mybox.scrollHeight // Height + padding + 溢出部分
5.如何获取元素节点的内容?
text.innerHTML
6.如何获取表单元素的值?
input.value
7.如何获取元素的属性?
img.src // 元素.属性
8.如何获取滚动条的滚动距离?
window.onscroll = function(){
console.log(document.documentElement.scrollTop);
}
9.创建对象的几种方式?
(1). 对象字面量的方式{}
let person = {
name: '李四',
age: 19,
gender: '女'
}
(2). 工厂模式(按照模式创建对象)
function xyj1(pname, pweapon, pgender, pintro) {
let obj = {};
obj.name = pname;
obj.weapon = pweapon;
obj.gender = pgender
obj.intro = function() {
console.log('我叫' + this.name);
}
return obj;
}
let p1 = xyj1('猪八戒','九尺钉耙','男',)
let p2 = xyj1('孙悟空','金箍棒','男',)
(3). 用原型的方式
//原型可以用来保存相同的方法或属性
function Dog(name,age){ //模拟一个Dog类
this.name=name; //this指向实例化后的对象
this.age=age; //狗的年龄和名字都是属性,静态的
}
Dog.prototype.speak=function(){
alert("我是一条名叫"+this.name+"的狗!爱好吃程序员!")
}
var wangcai= new Dog("旺财","5") //对象实例化
wangcai.speak() //执行方法
(4). 用new object方式
var person = new Object();
person.name = "wz";
person.age = 21;
person.sex = "male";
person.sayName = function(){
alert("this.name")
}