小案例之点击网页任意位置出现小爱心

本文介绍了一个使用HTML, CSS和JavaScript实现的有趣特效:当用户在页面任意位置点击时,会生成一个由两个部分组成的爱心,并随鼠标位置动态展示。通过事件监听和样式设置,实现了爱心的动态生成和定位。

本文用到了事件中的onclick事件和一些css属性

 

<script>

 

window.onload = function(){

document.onclick=function loveHeart(a){//添加点击事件

var div0 = document.createElement("div");//创建爱心的最外层父元素

var heartList = ["heartLeft","heartRight"];//创建爱心需要的两个div名称的数组

div0.style.left = a.clientX-45+"px";//获取当前点击的页面位置的横坐标

div0.style.top = a.clientY-45+"px";//获取当前点击的页面位置的纵坐标

div0.style.position = "absolute";

Object.assign(div0.style,{//设置父元素的样式

width:"90px",

height:"90px"

});

createHeart(div0);

document.body.appendChild(div0);//将div0放在body中

 

//创建爱心所需要的两个div以及设置其样式

function createHeart(parent){

for(var i = 0;i<heartList.length;i++){//for循环创建两个div以及为其设置样式

var div = document.createElement("div");

Object.assign(div.style,{

width:"50px",

height:"75px",

backgroundColor: "red",

borderTopLeftRadius:"50% 25px",//为左侧div设置左上角的圆角边框以及偏移距离

borderTopRightRadius:"50% 25px",//为左侧div设置右上角的圆角边框以及偏移距离

position:"absolute",

left:i === 0 ? "11px" : "29px",//利用三目运算符可以有效的简化代码

top: "0px",

transform:i === 0 ? "rotate(-45deg)" : "rotate(45deg)"//将两个子div旋转

});

parent.appendChild(div);//将两个子div放到父div中

}

}

}

}

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值