目录

鼠标点击字体特效

JQuery 版本

/* 鼠标特效 */
var a_idx = 0;
var a = new Array("❤Python❤","❤Julia❤","❤PHP❤","❤C❤","❤C++❤","❤C#❤","❤Java❤","❤Go❤","❤ASM❤","❤SQL❤","❤HTML❤","❤CSS❤","❤Javascript❤");
jQuery(document).ready(function($) {
    $("body").click(function(e) {
        var $i = $("<span></span>").text(a[a_idx]);
        a_idx = (a_idx + 1) % a.length;
        var x = e.pageX,
        y = e.pageY;
        $i.css({
            "z-index": 9999,
            "top": y - 20,
            "left": x,
            "position": "absolute",
            "font-weight": "bold",
            "color": "rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"
        });
        $("body").append($i);
        $i.animate({
            "top": y - 180,
            "opacity": 0
        },
        1500,
        function() {
            $i.remove();
        });
    });
});

Javascript 原生版

class ClickFontEffect {
 
    constructor(fontArray, colorArray) {
        // 文字列表
        this.fontArray = fontArray || ["快乐", "欢欣", "愉快", "欢喜"];
        // 颜色列表
        this.colorArray = colorArray || ["red", "green", "blue", "orange", "purple", "yellow"];
        // 获取body元素
        this.body = document.getElementsByTagName("body")[0];
        // 默认的css样式
        this.cssStyle = "position:absolute; width: 40px; height: 20px; cursor: default; transform: translate(-50%,-50%); font-weight: bold; opacity: 1; z-index: 1000; transition: 1s; -moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;user-select: none;";
 
        let that = this;
        document.addEventListener("click", (e) => { that.showFont(e); })
    };
 
    showFont(e) {
 
        // 创建一个随机节点
        let newNode = document.createElement('span');
        // 随机字体和颜色
        let fontIdx = Math.floor(Math.random() * this.fontArray.length);
        let coloryIdx = Math.floor(Math.random() * this.colorArray.length);
        let randomFront = this.fontArray[fontIdx];
        let randomColor = this.colorArray[coloryIdx];
        // 向body中添加元素
        this.body.appendChild(newNode);
        // 添加样式
        newNode.style.cssText = this.cssStyle;
        newNode.style.color = randomColor;
        newNode.innerHTML = randomFront;
 
        // 鼠标点击位置
        newNode.style.left = e.clientX + 'px';
        newNode.style.top = e.clientY + 'px';
 
        // 动画
        setTimeout(function () {
            newNode.style.opacity = 0;
            newNode.style.top = newNode.offsetTop - 100 + 'px';
        }, 100);
        // 清除
        let that = this;
        setTimeout(function () {
            that.body.removeChild(newNode);
        }, 2000);
    }
};
 
window.onload = function () {
    let fontEffect = new ClickFontEffect();
}