鼠标点击创建 小❤️❤️

这段代码展示了如何使用JavaScript创建一个动态的爱心飘落效果。通过CSS样式和JavaScript的动画帧实现,当用户点击页面时,会在点击位置生成彩色的心形元素并向下飘落,直至消失。该效果可用于增加网页的互动性和趣味性。

开始script结束script
开始link 结束link

! function(e, t, a) {
    function n() {
        c(".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: 500%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"), o(), r()
    }

    function r() {
        for (var e = 0; e < d.length; e++) d[e].alpha <= 0 ? (t.body.removeChild(d[e].el), d.splice(e, 1)) : (d[e].y--, d[e].scale += .004, d[e].alpha -= .013, d[e].el.style.cssText = "left:" + d[e].x + "px;top:" + d[e].y + "px;opacity:" + d[e].alpha + ";transform:scale(" + d[e].scale + "," + d[e].scale + ") rotate(45deg);background:" + d[e].color + ";z-index:99999");
        requestAnimationFrame(r)
    }

    function o() {
        var t = "function" == typeof e.onclick && e.onclick;
        e.onclick = function(e) {
            t && t(), i(e)
        }
    }

    function i(e) {
        var a = t.createElement("div");
        a.className = "heart", d.push({
            el: a,
            x: e.clientX - 5,
            y: e.clientY - 5,
            scale: 1,
            alpha: 1,
            color: s()
        }), t.body.appendChild(a)
    }

    function c(e) {
        var a = t.createElement("style");
        a.type = "text/css";
        try {
            a.appendChild(t.createTextNode(e))
        } catch (t) {
            a.styleSheet.cssText = e
        }
        t.getElementsByTagName("head")[0].appendChild(a)
    }

    function s() {
        return "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + ")"
    }
    var d = [];
    e.requestAnimationFrame = function() {
        return e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function(e) {
            setTimeout(e, 1e3 / 60)
        }
    }(), n()
}(window, document);
动态爱心效果可以通过HTML和CSS实现,主要依赖于CSS动画功能来创建视觉上的动态变化。以下是具体的实现方法: ### 一、核心概念 1. 使用`<div>`标签作为容器,通过伪元素`:before`和`:after`构建心形的基础几何图形。 2. 利用CSS中的`@keyframes`定义动画的关键帧,控制爱心的缩放、颜色渐变或移动等行为。 --- ### 二、具体实现 #### HTML结构 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dynamic Heart Animation</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="heart"></div> </body> </html> ``` #### CSS样式 ```css /* 基础布局 */ body { display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background-color: #f0f0f0; } /* 心形主体 */ .heart { position: relative; width: 100px; height: 90px; transform: rotate(-45deg); animation: heartBeat 1.5s infinite ease-in-out; } /* 左半边 */ .heart::before { content: ''; position: absolute; top: 0; left: 50px; width: 50px; height: 80px; background-color: red; border-radius: 50px 50px 0 0; transform-origin: bottom left; transform: rotate(-45deg); } /* 右半边 */ .heart::after { content: ''; position: absolute; top: 0; left: 0; width: 50px; height: 80px; background-color: red; border-radius: 50px 50px 0 0; transform-origin: bottom right; transform: rotate(45deg); } /* 动画关键帧 */ @keyframes heartBeat { 0%, 100% { transform: scale(1) rotate(-45deg); } 50% { transform: scale(1.2) rotate(-45deg); } } ``` 以上代码中,`.heart`类用于定义整个心形的尺寸和初始状态,而`:before`和`:after`伪元素分别负责左半边和右半边的绘制[^1]。通过设置不同的`border-radius`值以及旋转角度,可以精确地形成一个标准的心形图案。同时,`@keyframes heartBeat`提供了心跳般的缩放动画效果[^2]。 --- ### 三、扩展功能 如果希望进一步增强动态效果,可以考虑以下改进措施: 1. **颜色渐变**:为背景或心形本身添加色彩过渡,营造更丰富的视觉感受。 2. **鼠标交互**:结合JavaScript监听用户的点击事件,在指定位置生成新的动态爱心。 3. **路径运动**:让爱心沿着特定轨迹移动,例如从底部飞向顶部消失。 --- ### 四、总结 上述方案仅需简单的HTML与CSS即可完成一个具有吸引力的动态爱心展示。它不仅适用于网页装饰,也可以作为节日主题的一部分融入到更大的项目当中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值