2月11
Day16
1-什么是事件委托,原理是什么?
委托就是把自己的事拜托给别人做,让别人来完成.
原理
利用冒泡的原理,把事件添加到父元素上,委托它们父级代为执行事件
2-js 中有几种定时器,有什么区别?
setInterval(函数,时间)
时间单位毫秒
页面加载完成之后启动定时器,每个1s执行一次,点击停止按钮,定时器停止
返回值是定时器的ID,是用来清理定时器
setInterval(function() {
console.log("定时器输出")
}, 1000)
var btn1 = document.getElementById("btn1")
btn1.onclick = function() {
清除定时器
clearInterval(a) 定时器的id
}
setTimeout(函数(具体处理的事件),时间)
时间单位---毫秒
返回值---该定时器的id
setInterval以指定时间为周期循环执行
setTimeout只在指定时间后执行一次
3-如何清除定时器?
clearInterval(a) 定时器的id
clearTimeout(a)
4-封装一个动画函数
function animate(element, target) {
//先清理定时器,这样可以保证每次点击按钮都只产生一个定时器
clearInterval(element.timeId);
element.timeId = setInterval(function() {
//获取div的当前位置
var current = element.offsetLeft;
//设置每次移动多少像素
var step = 10;
step = current < target ? step : -step;
//每次移动后的位置
current += step;
//判断当前位置距离目标位置多少像素
if (Math.abs(current - target) >= Math.abs(step)) {
element.style.left = current + "px";
} else {
clearInterval(element.timeId);
element.style.left = target + "px";
}
}, 10);
}

浙公网安备 33010602011771号