JS事件

1、事件
HTML的事件:是用户和浏览器之间产生行为,这个行为称之为事件
比如:鼠标点击、双击、滑动、滚动等

2、JS的事件有三种模型,
1)内联模型 2)脚本模型 3)DOM2模型

内联模型
1、内联模式支持不支持多参?
2、变参是否支持?

onload 延迟加载/懒加载,
onload 是一个事件,是当文档以及内容(包括引入JS/css)加载完
之后才会触发该事件
一个页面里,一个文档,如果还有其他onload事件,只会执行最后一个,
有且只有一个onload方法

只要有事件,就写到懒加载里,比较安全
标签加载完,才能进行懒加载

鼠标事件
DOM 中事件基本上是 on + 事件名称 两部分组成
onclick onload
onclick 鼠标的单击事件
ondbclick 鼠标的双击事件

div.onmousedown = function(){
console.log(‘鼠标按下’)
}

div.onmouseup = function(){
console.log(‘鼠标弹起’)
}
div.onmouseover = function(){
console.log(‘hover in’)
console.log(‘鼠标进入’)
this.style.backgroundColor = ‘red’
}
div.onmouseout = function(){
console.log(‘hover out’)
console.log(‘鼠标移出’)
this.style.backgroundColor = ‘#f60’
}
div.onmousemove = function(){
console.log(‘鼠标移动’)
}

键盘事件
// 键盘按下
window.onkeydown = function(ev){
console.log(‘key down’)
// console.log(this)
console.log(ev.key) // 打印出按下的键
}
// 键盘长按
window.onkeypress = function(){
console.log(‘key press’)
}
// 键盘弹起window.onkeyup = function(){
console.log(‘key up’)
}

焦点事件
var input_el = document.querySelector(‘input’)
// 焦点事件 focus
input_el.onfocus = function(){
console.log(‘获取焦点’)
}
// 失去焦点
input_el.onblur = function(){
console.log(‘失去焦点’)
if(this.value != ‘’){ // ‘’==false
console.log(this.value)
}else{
this.style.border = ‘1px solid red’
// console.log(this.value)
}
}

    // 获取input 内容发生改变时触发
    // onchange 当文本内容发生改变且失去焦点时才会被触发
    
    // 输出两次
    input_el.onchange = function(){
        console.log(this.value)
    }

    // 失去焦点时获取全部输入内容
    input_el.onselect = function(){
        console.log(this.value)
    }

    // 如何获取 用户动态输入时的文字跟踪
    // 现代浏览器
    // oninput 是现代浏览器用来监听 input的文本内容发生改变
    // 跟踪每一次输入的变化
    
    input_el.oninput = function(){
        console.log(this.value)
        // 如何做到本次输入的和上次输入的有差别
    }

窗口事件
// resize 当窗口大小发生改变时触发
window.onresize = function(){
console.log(this.innerWidth)
}
// scroll 当用户滚动滚动条的元素时触发
window.onscroll = function(){
console.log(‘scroll’)
}

// 为了能做兼容 IE 和主流浏览器 IE必须带window
var e = ev || window.event
// target 就是当前事件所作用在哪个 目标元素上
console.log(arguments,arguments.length)

事件流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值