使用网页元素节点的setAttribute方法直接操作网页元素的style属性。
div.setAttribute(
'style',
'background-color:red;'+'border:1px solid black;'
);
var divStyle = document.querySelector('div').style;
divstyle.backgroundColor = 'red';
divstyle.border = '1px solid black';
divstyle.width ='100px';
divstyle.height = '100px';
divstyle.fontsize = '10em'
var divStyle = document.querySelector('div').style;
divStyle.cssText = 'background-color: 'red;'
+ border: 1px solid black;
+ 'height: 100px;
+ 'width: 100px;';
缺点:html和js没有分开
DOCTYPE htm1>
<htm1>
<head lang="en">
<meta charset="UTF-8">
<title>Js事件详解--事件处理title>
head>
<body>
<div id="div">
<button id="btn1" onclick="demo()">按钮button>
div>
<script>
function demo() {alert("he11o htm]事件处理");}
script>
body>
htmI>
onclick为鼠标事件
优点:html和js是分离的
DOCTYPE htm1>
<htm1>
<head lang="en">
<meta charset="UTF-8">
<title>Js事件详解--事件处理title>
head>
<body>
<button id="btn">按钮button>
<script>
var btn=document.getElementById("btn")
btn.onclick=function(){
console.log("点击了");
}
script>
body>
htmI>
优点:事件不会被覆盖
DOCTYPE htm1>
<htm1>
<head lang="en">
<meta charset="UTF-8">
<title>Js事件详解--事件处理title>
head>
<body>
<button id="btn">按钮button>
<script>
var btn=document.getElementById("btn")
btn.addEventListener("click",function(){console.log("点击了1");})
btn.addEventListener("click",function(){console.log("点击了2");})
script>
body>
htmI>
DOCTYPE htm1>
<htm1>
<head lang="en">
<meta charset="UTF-8">
<title>Js事件详解--事件处理title>
head>
<body>
<button id="btn1">鼠标事件之单击button>
<button id="btn2">鼠标事件之双击button>
<script>
var btn=document.getElementById("btn1")
var btn=document.getElementById("btn2")
btn1.onclick=function(){
console.log("单击");
}
btn2.ondblclick=function(){
console.log("双击");
}
script>
body>
htmI>
其他代码均和以上的类型相同。
事件发生以后,会产生一个事件对象,作为参数传给监听函数
Event对象属性
DOCTYPE htm1>
<htm1>
<head lang="en">
<meta charset="UTF-8">
<title>Js事件详解--事件处理title>
head>
<body>
<button id="btn1">按钮button>
<script>
var btn=document.getElementById("btn1")
//Event事件对象 其实就是参数
btn1.onclick=function(event){
console.log(event);
}
script>
body>
htmI>
返回事件当前所在的节点,点击谁就打印出来谁。
//html代码为
// <p id="para"> Hello p>
DOCTYPE htm1>
<htm1>
<head lang="en">
<meta charset="UTF-8">
<title>Js事件详解--事件处理title>
head>
<body>
<button id="btn1">按钮button>
<script>
var btn=document.getElementById("btn1")
//Event事件对象 其实就是参数
btn1.onclick=function(event){
console.log(event.target);
event.target.innerHTML="点击之后";/*点击按钮会变成这个字符串*/
}
script>
body>
htmI>
返回一个字符串,表示事件类型。事件的类型是在生成事件的时候。
此方法取消浏览器对当前事件的默认行为,比如点击链接后,浏览器默认会跳转到另一个页面,使用这个方法以后,就不会跳转了。
btn.οnclick=function(e){
e.preventDefault();
console.log("点击A标签");
}
stopPropagation方法阻止事件在 DOM 中继续传播,防止再触发定义在别的节点上的监听函数,但是不包括在当前节点上其他的事件监听函数
btn.οnclick=function(e){
e.stopPropagation();//阻止事件冒泡
console.log("btn");
}
键盘事件由用户打击键盘触发,主要有keydown、keypress、keyup三个事件。
username.οnkeypress=function(e){
console.log("keypress事件");
}
event对象
keyCode:唯一标识
var username=document.getElementById(“username”);
username.οnkeydοwn=function(e){
if(e.keyCode==13){
console.log(“回车”);
}
}
表单事件是在使用表单元素及输入框元素可以监听的一系列事件
input事件当
、
、 的值发生变化时触发,即数据发生改变触发此事件。
对于复选框 ( ) 或单选框 (
),用户改变选项时,也会触发这个事件
input事件的一个特点,就是会连续触发,比如用户每按下一次按键,就会触发一次input事件。
var username=document.getElementById("username");
username.οninput=function(e){
console.log(e.target.value);
}
select事件在、
里面选中文本时触发
//html代码如下
//<input id="test" type="text" value="select me"/>
var elem=document.getElementById('test');
elem.addEventListener('select',function(e){
console.log("e.type");
},false);
Change事件当
、
、 的值发生变化时触发,它与input最大的不同就是不会连续触发,只有当全部修改完成时,才会触发。
var email=document.getElementById("email");
email.οnchange=function(e){
console.log(e.target.value);
}
这两个事件发生在表单对象 上,而不是发生在表单的成员上。
reset事件当表单重置(所有表单成员变回默认值)时触发
submit事件当表单数据向服务器提交时触发。注意,submit事件的发生对象是元素,而不是
元素,因为提交的是表单,而不是按钮
<form id="myForm" onsubmit="submitHandle">
<button onclick="resetHandle">重置数据button>
<button>提交button>
form>
var myForm = document.getElementById("myForm")
function resetHandle(){
myForm.reset();
}
function submitHandle(){console.1og("提交");}
JavaScript 提供定时执行代码的功能成。。它们向任务队列添加定时任务
叫做定时器 (timer),主要由 setTimeout0 和 setlnterval0 这两个函数来完
setTimeout 函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。
var timerId=setTimeout(func|code,delay);
setTimeout 函数接受两个参数,第一个参数 fun|code 是将要推迟执行的函数名或者一段代码,第二个参数 delay 是推迟执行的毫秒数.
setTimeout(function(){
console.log("定时器")
},1000)
setinterval 函数的用法与 setTimeut 完全一致,区别仅仅在于 setintervl 指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行
vat timer=setInterval(function(){
console.log(2);
},1000)
通过setInterval方法实现网页动画
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
#someDiv{
width:100px;
height:100px;
background:red;
}
style>
head>
<body>
<div id="someDiv">div>
<script>
var div=document.getElementById('someDiv');
var opacity=1;
//opacity 透明度:范围0-1
var fader=setInterval(function(){
opacity-=0.5;
if(opacity>0){
div.style.opacity=opacity;
}else{
clearInterval(fader);
}
},30);
script>
body>
html>
定义:对于短时间内连续触发的事件(滚动事件),让某个时间期限内,事件函数只执行一次。