Event对象
- 只要事件发生就会产生一个event事件
- 事件发生后创建对象
- Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
- 事件通常与函数结合使用,函数不会在事件发生前被执行
鼠标事件
| 事件 | 说明 |
|---|---|
| onclick | 鼠标点击某个对象 |
| ondblclick | 鼠标双击某个对象 |
| onmouseover | 鼠标被移到某元素之上 |
| onmouseout | 鼠标从某元素移开 |
| onmousemove | 鼠标被移动 |
| onmousedown | 某个鼠标按键被按下 |
| onmouseup | 某个鼠标按键被松开 |
onmouseenter 和 onmouseover的区别
键盘事件
| 事件 | 说明 |
|---|---|
| onkeypress[使用的比较少] | 键盘的某个键被按下 |
| onkeydown | 键盘的某个键被按下或按住 |
| onkeyup | 键盘的某个键被松开 |
光标事件
| 事件 | 说明 |
|---|---|
| onfocus | 元素获得焦点 |
| onblur | 元素失去焦点 |
表单事件
| 事件 | 说明 |
|---|---|
| onsubmit | 提交按钮被点击 |
| onreset | 重置按钮被点击 |
| onselect | 文本内容被选定 |
| onchange | 用户改变表单元素的内容 |
加载事件
| 事件 | 说明 |
|---|---|
| onload | 页面或图像加载完成 |
滚动事件
| 事件 | 说明 |
|---|---|
| onscroll | 窗口发生滚动 |
-
文档可视区域高度(屏幕的高度) document.documentElement.clientHeight
-
文档高度(整个html页面的高度) document.documentElement.scrollHeight
-
文档滚动高度(火狐|IE有效) document.documentElement.scrollTop
-
文档滚动高度(360有效) document.body.scrollTop
-
获得当前坐标的X,Y坐标 x=event.clientX; Y=event.clientY
-
获取当前元素的宽度和高度,定位的left和top height=ele.offsetHeight;
width=ele.offsetWidth left = offsetLeft
top = offsetTop
案例:淘宝首页,点击按钮返回顶部
body{
height: 3000px;
}
div{
padding: 20px 3px;
background-color: pink;
position: fixed;
right: 10px;
bottom: 10px;
display: none;
}
<body>
<div id='box'>返回顶部</div>
</body>
<script>
var oBox= document.getElementById('box');
window.onscroll=function(){
var top = document.documentElement.scrollTop||document.body.scrollTop;
if(top>=200){
oBox.style.display = 'block';
}else{
oBox.style.display = 'none';
}
oBox.onclick=function(){
setInterval(goTop,10)
}
function goTop(){
var top = document.documentElement.scrollTop||document.body.scrollTop;
if(top>0){
top -= 50;
document.documentElement.scrollTop = top;
}
}
}
</script>
案例二:使用滚动实现滚动到淘宝指定位置,显示搜索框
DOM CSS动态样式
动态样式
- 动态样式指通过脚本动态控制元素的样式,实现页面显示格式的动态变化。比如:动态滚动的文本、动态移动的图片、可折叠的树形菜单等。
使用style对象访问样式
- 每个HTML标记均具有style属性,相应的,JavaScript脚本中的HTML元素对象都具有style属性,该属性是一个style对象。
- Style对象的属性与CSS样式中的属性一一对应。
元素对象.className="类名"
- 因为属性名class在JS中为关键字,所在此处写做className
var box = document.getElementById("box");
box.style.color="#ff0000";
box.style.width="400px";
box.style.height="300px";
读取元素对象样式属性
- 例如:var color = box.style.color
- 注意:在读取元素样式属性时,style对象只能读取行内样式设置的属性或元素对象设置的属性,对于内嵌样式和外联样式,将返回空值。
CSS属性与style对象属性的转换
- Style对象中的属性与CSS样式表中属性是一一对应的,但名称不一样。
- 当属性名为单个单词时,style对象的属性名与样式表中的属性名称是相同的
- 当属性名由多个单词组成时,除第一个单词外,其它单词的首字母大写
- 属性值需要用引号引起来
var box = document.getElementById("box");
box.style.backgroundColor="#ff0000";
box.style.border="1px solid #f00";
box.style.height="300px";