美文网首页
事件冒泡与事件委托和其他知识点

事件冒泡与事件委托和其他知识点

作者: 苗_a | 来源:发表于2018-12-10 19:07 被阅读13次

事件冒泡

就是当一个子元素的事件被触发的时候onclick事件,该事件会从事件源(被点击的子元素)开始逐级向上传播,触发父级元素的点击事件
<div id="parent" style="background-color: #000;height: 400px;width: 400px" data-id="11">
<div id="child" style="background-color: #fff;height: 200px;width: 200px" data-id="22"></div>
</div>

document.getElementById('parent').onclick=function () {
console.log(this.getAttribute('data-id'));
};
document.getElementById('child').onclick=function (e) {
console.log(this.getAttribute('data-id'));
};

事件委托

事件委托,首先按字面的意思就能看你出来,是将事件交由别人来执行,再联想到上面讲的事件冒泡,是不是想到了?对啦,其实就是将子元素的事件通过冒泡的形式交由父元素来执行

置顶菜单

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>06-置顶菜单</title>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
(function(){(window).scroll(function() {
var nowTop = (document).scrollTop(); if (nowTop>200) { // 注意是 “,”('.menu').css({
position:'fixed',
top:0,
// 定位 一半
left:'50%',
marginLeft:-480,
})
('.menu_pos').show(); }else{('.menu').css({
// 对原来的样式进行覆盖
position:'static',
marginLeft:'auto',
})
$('.menu_pos').hide();
}
});
})
</script>
<style type="text/css">
body{margin:0px;}
.logo_bar{
width:960px;
height:200px;
background-color:#f0f0f0;
margin:0 auto;
}
.menu,.menu_pos{
width:960px;
height:50px;
margin:0 auto;
background-color:gold;
text-align:center;
line-height:50px;
}
.menu_pos{
display:none;
}
.down_con{
width:960px;
height:1800px;
margin:0 auto;
}
.down_con p{
margin-top:100px;
text-align:center;
}
.totop{
width:50px;
height:50px;
background:url(images/up.png) center center no-repeat #000;
border-radius:50%;
position:fixed;
right:50px;
bottom:50px;
display:none;
}
</style>
</head>
<body>
<div class="logo_bar">顶部logo</div>
<div class="menu">置顶菜单</div>
<div class="menu_pos"></div>
<div class="down_con">
<p style="color:red">网站主内容</p>
<p>网站主内容</p>
<p>网站主内容</p>
<p>网站主内容</p>
<p>网站主内容</p>
</div>
<a href="javascript:;" class="totop"></a>
</body>
</html>

滚动

元素脱离文档流是其他元素的布局排版不会收到这个元素的影响,就当这个元素不存在
脱离文档流有三种方式:absolute、float、fixed,这三种也有区别:
absolute:定位取决于它的父元素有没有定位,如果有那么它就根据定位的父元素定位,如果没有就会一级一级的向上找,直到找到body
float:它脱离文档流的时候其他元素仍然会当这个元素不存在,但是其他元素盒子中的文本仍然会环绕在这个元素周围
fixed:以窗口左上角为原点定位,定位之后相对于窗口的位置始终不变

相关文章

  • 事件冒泡与事件委托和其他知识点

    事件冒泡 就是当一个子元素的事件被触发的时候onclick事件,该事件会从事件源(被点击的子元素)开始逐级向上传播...

  • 使用原生 JS 实现事件委托

    在介绍事件委托之前,我们先介绍另外两个知识点:其他的事件绑定方法和事件冒泡及捕获。 事件绑定/监听的方法 1.直接...

  • 事件委托

    ------------------事件委托----------------- 事件: 事件委托: 原理: 冒泡 ...

  • 原始类型与事情委托

    1.绑定事件: 二、事件冒泡与事件捕获 事件委托 案例见事件委托 计时器

  • JavaScript 事件冒泡、事件捕获和事件委托

    JavaScript 事件冒泡、事件捕获和事件委托 以下在chrome、firefox执行通过。 事件流、事件冒泡...

  • 2018-12-10

    jQuery其他事件 绑定事件bind 自定义事件 事件冒泡 定时器弹框 事件委托

  • 前端(十七)

    事件冒泡 鼠标移入移出 input框事件 jQuery其他事件 绑定事件bind 自定义事件 事件委托 节点操作

  • 事件委托笔记

    事件委托原理:事件冒泡机制。 什么是事件委托: 事件委托——给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪...

  • 事件冒泡、事件捕获、事件委托

    事件冒泡、事件捕获、事件委托

  • JavaScript 事件委托

    1. 事件委托 事件处理程序过多的解决方法就是事件委托,事件委托利用的是事件冒泡。事件冒泡:事件由最具体的元素接收...

网友评论

      本文标题:事件冒泡与事件委托和其他知识点

      本文链接:https://www.haomeiwen.com/subject/jkudhqtx.html