主要思路:

通过var 数组定义若干个小心心的坐标,然后利用setTimeout函数控制小心心上升速度

判定鼠标点击时的坐标,在数组中加入小心心并生成,然后每次循环修改坐标,实现心心的出现与飞出

但心心如果只有一个颜色会较为单一,所以可以使用随机数为心心随机生成颜色。

代码如下

<script>
(function(window,document,undefined){var hearts = [];window.requestAnimationFrame = (function(){return window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.oRequestAnimationFrame ||window.msRequestAnimationFrame ||function (callback){setTimeout(callback,1000/60);}})();init();function init(){css(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}");attachEvent();gameloop();}function gameloop(){for(var i=0;i<hearts.length;i++){if(hearts[i].alpha <=0){document.body.removeChild(hearts[i].el);hearts.splice(i,1);continue;}hearts[i].y--;hearts[i].scale += 0.004;hearts[i].alpha -= 0.013;hearts[i].el.style.cssText = "left:"+hearts[i].x+"px;top:"+hearts[i].y+"px;opacity:"+hearts[i].alpha+";transform:scale("+hearts[i].scale+","+hearts[i].scale+") rotate(45deg);background:"+hearts[i].color;}requestAnimationFrame(gameloop);}function attachEvent(){var old = typeof window.onclick==="function" && window.onclick;window.onclick = function(event){old && old();createHeart(event);}}function createHeart(event){var d = document.createElement("div");d.className = "heart";hearts.push({el : d,x : event.clientX - 5,y : event.clientY - 5,scale : 1,alpha : 1,color : randomColor()});document.body.appendChild(d);}function css(css){var style = document.createElement("style");style.type="text/css";try{style.appendChild(document.createTextNode(css));}catch(ex){style.styleSheet.cssText = css;}document.getElementsByTagName('head')[0].appendChild(style);}function randomColor(){return "rgb("+(~~(Math.random()*255))+","+(~~(Math.random()*255))+","+(~~(Math.random()*255))+")";}
})(window,document);
</script>

实现点击产生爱心的特效相关推荐

  1. html点击鼠标页面出现爱心,js实现鼠标点击飘爱心效果

    本文实例为大家分享了js实现鼠标点击飘爱心的具体代码,供大家参考,具体内容如下 鼠标点击特效 html { cursor: pointer; } h3 { text-align: center; us ...

  2. html5制作一款超好看的点赞爱心气泡特效

    基于canvas点击圆形爱心按钮,喷出爱心气泡动画特效.这是一款点赞喜欢爱心特效. css代码 <style>body {background-color: rgba(255, 137, ...

  3. 需要按次序点击链接的网页特效

    需要按一次次序来点击链接的网页特效,有些前端开发者将其命名为"先点击后链接",需要按要求一个一个点击链接后才能让指定的链接生效,记得以前这种功能常被用于广告上面,用户不点击广告,就 ...

  4. 2022跨年烟花代码(三)HTML5点击页面烟花绽放特效

    HTML5点击页面烟花绽放特效 <!doctype html> <html> <head> <meta charset="utf-8"&g ...

  5. 2022跨年烟花代码(六)HTML5鼠标点击页面放烟花特效

    HTML5鼠标点击页面放烟花特效 html代码 <!DOCTYPE html> <html> <head><meta http-equiv="Con ...

  6. HTML5七夕情人节表白网页(情人节满屏爱心HTML5特效) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码

    HTML5七夕情人节表白网页❤情人节满屏爱心HTML5特效❤ HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码 css爱 ...

  7. HTML5七夕情人节表白网页制作【情人节满屏爱心HTML5特效】HTML+CSS+JavaScript html生日快乐祝福网页制作

    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看. 此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个 ...

  8. html中点击导航栏变色,JavaScript实现鼠标点击导航栏变色特效

    废话不多说了,直接给大家贴js实现鼠标点击导航栏变色代码,具体代码如下所示: JAVASCRIPT之导航栏鼠标点击变色特效 body { font-size:12px; font-family: Ar ...

  9. 仿抖音上下滑动播放视频 demo+爱心点赞特效

    DouyinDemo 项目地址:PangHaHa12138/DouyinDemo  简介:仿抖音上下滑动播放视频 demo+爱心点赞特效 更多:作者   提 Bug 标签: 仿抖音上下滑动播放视频 d ...

最新文章

  1. leetcode 179. 最大数
  2. 影响数据库性能的因素
  3. 用共振频率去理解神经网络-将乙烯模型运行300次的数据
  4. Linux学习:第一章-Linux简介
  5. 跟我学调试-必备神器:Postman
  6. 专科python应届生工资多少-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
  7. python3入门经典100例-Python3经典100例(Python3入门习题) 含答案 doc版
  8. python缩进块是什么_python中缩进是用来做什么的
  9. Security+ 学习笔记27 灾后恢复
  10. Java 如何生成 UUID
  11. sd卡分区工具PM9.0汉化版
  12. CTO们接着吼:创业公司几乎全是坑!
  13. android apn切换工具,Android修改和添加APN网络
  14. 如何处理团队的技术债务
  15. 解决谷歌浏览器提示Google账号无法登录提示浏览器或应用不安全问题
  16. 真实的周星星,你了解吗?
  17. 正则表达式验证身份证号以及验证校验位的正确性
  18. sql20005 分页存储过程
  19. 如何补丁1个文件(linux diff patch)
  20. java web 发送消息_java集成WebSocket向指定用户发送消息

热门文章

  1. JS中字符串常用方法总结
  2. Python字符串切片以及常见操作
  3. 调用无参构造函数创建对象与函数声明
  4. java 无参构造函数的作用
  5. java不可以修改的修饰语_【填空题】在java程序中,用关键字___修饰的常量对象创建后就不能再修改了。...
  6. Vulkan系列教程—VMA教程(二)—选择内存类型
  7. 京东店铺如何通过主图提高点击率?
  8. 回车符('\r')和换行符('\n')
  9. 只需三步,完美卸载Docker
  10. 应届生如何提高职场竞争力?