事件代理 方式百度换皮肤详解编程语言
!DOCTYPE html
html
head lang= en
meta charset= UTF-8
title /title
style
*{margin:0;padding:0}
body {
background: url(images/1.jpg) top center;
}
.box {
height: 150px;
background: rgba(255,255,255,.3);
text-align: center;
padding-top:50px;
}
.box img {
cursor: pointer;
}
/style
script
window.onload = function(){
/*通过事件代理来解决问题*/
var box=document.querySelector( .box );
box.addEventListener( click ,function(e){
if(e.target.tagName.toLowerCase()== img ){
//获得图片src 需要解析
//解析之后是file:///E:/JS学习/04. 京东商城项目实战(共60多集)/2.京东商城-JS/第1天/笔记源码/案例/08 百度换肤/images/1.jpg
var imgUrl=decodeURIComponent(e.target.src);
//图片放在哪个文件夹就需要找到文件夹字符串的位置 来找到图片的相对位置
var sign=imgUrl.lastIndexOf( images );
//截取需要的路径
var url=imgUrl.slice(sign);
document.body.style.backgroundImage= url( +url+ )
}
},false);
}
/script
/head
body
div > img src= images/1.jpg alt= width= 150 id= pic1 /
img src= images/2.jpg alt= width= 150 id= pic2 /
img src= images/3.jpg alt= width= 150 id= pic3 /
/div
/body
/html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12285.html
c相关文章
- input输入框的input事件
- GridView中DropDownList的事件
- 事件监听思考
- 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )
- Spring Cloud Bus在服务之间传递自定义事件(二)
- Oracle 等待事件 rolling migration: cluster quiesce 官方解释,作用,如何使用及优化方法
- jQuery常用鼠标事件汇总
- 实现Redis键值过期 一种有效触发方式(触发redis过期事件)
- MYSQL创建事件失败,解决方法大搜罗(mysql不能创建事件)
- 深入理解__doPostBack客户端调用服务端事件
- jQuery学习4浏览器的事件模型
- .NET中基于事件的异步模式-EAP
- js阻止子元素响应父元素的onmouseout事件具体实现
- javascript中的事件代理初探