WordPress美化 - 怎么添加評(píng)論框禮花特效?

    在評(píng)論區(qū)輸入評(píng)論的時(shí)候會(huì)有一陣帶感的禮花和震動(dòng)特效,很是炫酷有趣,這一次的wordpress美化教程就和大家分享一下這是如何實(shí)現(xiàn)的吧

    在一些站長(zhǎng)的網(wǎng)站上逛的時(shí)候發(fā)現(xiàn)了這樣一個(gè)有趣的特效,就是在評(píng)論區(qū)輸入評(píng)論的時(shí)候會(huì)有一陣帶感的禮花和震動(dòng)特效,很是炫酷有趣,這一次的wordpress美化教程就和大家分享一下這是如何實(shí)現(xiàn)的吧。

    效果如圖:

    Wordpress美化 - 怎么添加評(píng)論框禮花特效?
    WordPress美化 - 添加評(píng)論框禮花特效效果

    如何使用?

    將以下代碼添加至主題根目錄下的 footer.php 的 </body> 標(biāo)簽前即可。

    <!--評(píng)論框禮花特效-->
    <script type="text/javascript">
    (function webpackUniversalModuleDefinition(root, factory) {
        if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();
        else if (typeof define === 'function' && define.amd) define([], factory);
        else if (typeof exports === 'object') exports["POWERMODE"] = factory();
        else root["POWERMODE"] = factory()
    })(this,function() {
        return (function(modules) {
            var installedModules = {};
            function __webpack_require__(moduleId) {
                if (installedModules[moduleId]) return installedModules[moduleId].exports;
                var module = installedModules[moduleId] = {
                    exports: {},
                    id: moduleId,
                    loaded: false
                };
                modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
                module.loaded = true;
                return module.exports
            }
            __webpack_require__.m = modules;
            __webpack_require__.c = installedModules;
            __webpack_require__.p = "";
            return __webpack_require__(0)
        })([function(module, exports, __webpack_require__) {
            'use strict';
            var canvas = document.createElement('canvas');
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
            canvas.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999';
            window.addEventListener('resize',
            function() {
                canvas.width = window.innerWidth;
                canvas.height = window.innerHeight
            });
            document.body.appendChild(canvas);
            var context = canvas.getContext('2d');
            var particles = [];
            var particlePointer = 0;
            POWERMODE.shake = true;
            function getRandom(min, max) {
                return Math.random() * (max - min) + min
            }
            function getColor(el) {
                if (POWERMODE.colorful) {
                    var u = getRandom(0, 360);
                    return 'hsla(' + getRandom(u - 10, u + 10) + ', 100%, ' + getRandom(50, 80) + '%, ' + 1 + ')'
                } else {
                    return window.getComputedStyle(el).color
                }
            }
            function getCaret() {
                var el = document.activeElement;
                var bcr;
                if (el.tagName === 'TEXTAREA' || (el.tagName === 'INPUT' && el.getAttribute('type') === 'text')) {
                    var offset = __webpack_require__(1)(el, el.selectionStart);
                    bcr = el.getBoundingClientRect();
                    return {
                        x: offset.left + bcr.left,
                        y: offset.top + bcr.top,
                        color: getColor(el)
                    }
                }
                var selection = window.getSelection();
                if (selection.rangeCount) {
                    var range = selection.getRangeAt(0);
                    var startNode = range.startContainer;
                    if (startNode.nodeType === document.TEXT_NODE) {
                        startNode = startNode.parentNode
                    }
                    bcr = range.getBoundingClientRect();
                    return {
                        x: bcr.left,
                        y: bcr.top,
                        color: getColor(startNode)
                    }
                }
                return {
                    x: 0,
                    y: 0,
                    color: 'transparent'
                }
            }
            function createParticle(x, y, color) {
                return {
                    x: x,
                    y: y,
                    alpha: 1,
                    color: color,
                    velocity: {
                        x: -1 + Math.random() * 2,
                        y: -3.5 + Math.random() * 2
                    }
                }
            }
            function POWERMODE() {
                {
                    var caret = getCaret();
                    var numParticles = 5 + Math.round(Math.random() * 10);
                    while (numParticles--) {
                        particles[particlePointer] = createParticle(caret.x, caret.y, caret.color);
                        particlePointer = (particlePointer + 1) % 500
                    }
                } {
                    if (POWERMODE.shake) {
                        var intensity = 1 + 2 * Math.random();
                        var x = intensity * (Math.random() > 0.5 ? -1 : 1);
                        var y = intensity * (Math.random() > 0.5 ? -1 : 1);
                        document.body.style.marginLeft = x + 'px';
                        document.body.style.marginTop = y + 'px';
                        setTimeout(function() {
                            document.body.style.marginLeft = '';
                            document.body.style.marginTop = ''
                        },
                        75)
                    }
                }
            };
            POWERMODE.colorful = false;
            function loop() {
                requestAnimationFrame(loop);
                context.clearRect(0, 0, canvas.width, canvas.height);
                for (var i = 0; i < particles.length; ++i) {
                    var particle = particles[i];
                    if (particle.alpha <= 0.1) continue;
                    particle.velocity.y += 0.075;
                    particle.x += particle.velocity.x;
                    particle.y += particle.velocity.y;
                    particle.alpha *= 0.96;
                    context.globalAlpha = particle.alpha;
                    context.fillStyle = particle.color;
                    context.fillRect(Math.round(particle.x - 1.5), Math.round(particle.y - 1.5), 3, 3)
                }
            }
            requestAnimationFrame(loop);
            module.exports = POWERMODE
        },
        function(module, exports) { 
            (function() {
                var properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX', 'overflowY', 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth', 'borderStyle', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch', 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily', 'textAlign', 'textTransform', 'textIndent', 'textDecoration', 'letterSpacing', 'wordSpacing', 'tabSize', 'MozTabSize'];
                var isFirefox = window.mozInnerScreenX != null;
                function getCaretCoordinates(element, position, options) {
                    var debug = options && options.debug || false;
                    if (debug) {
                        var el = document.querySelector('#input-textarea-caret-position-mirror-div');
                        if (el) {
                            el.parentNode.removeChild(el)
                        }
                    }
                    var div = document.createElement('div');
                    div.id = 'input-textarea-caret-position-mirror-div';
                    document.body.appendChild(div);
                    var style = div.style;
                    var computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;
                    style.whiteSpace = 'pre-wrap';
                    if (element.nodeName !== 'INPUT') style.wordWrap = 'break-word';
                    style.position = 'absolute';
                    if (!debug) style.visibility = 'hidden';
                    properties.forEach(function(prop) {
                        style[prop] = computed[prop]
                    });
                    if (isFirefox) {
                        if (element.scrollHeight > parseInt(computed.height)) style.overflowY = 'scroll'
                    } else {
                        style.overflow = 'hidden'
                    }
                    div.textContent = element.value.substring(0, position);
                    if (element.nodeName === 'INPUT') div.textContent = div.textContent.replace(/\s/g, "\u00a0");
                    var span = document.createElement('span');
                    span.textContent = element.value.substring(position) || '.';
                    div.appendChild(span);
                    var coordinates = {
                        top: span.offsetTop + parseInt(computed['borderTopWidth']),
                        left: span.offsetLeft + parseInt(computed['borderLeftWidth'])
                    };
                    if (debug) {
                        span.style.backgroundColor = '#aaa'
                    } else {
                        document.body.removeChild(div)
                    }
                    return coordinates
                }
                if (typeof module != "undefined" && typeof module.exports != "undefined") {
                    module.exports = getCaretCoordinates
                } else {
                    window.getCaretCoordinates = getCaretCoordinates
                }
            } ())
        }])
    });
    </script>
    <script type="text/javascript">
        POWERMODE.colorful = true; // ture 為啟用禮花特效
        POWERMODE.shake = false; // false 為禁用震動(dòng)特效
        document.body.addEventListener('input', POWERMODE);
    </script>

    首先,將頁(yè)面底部的js代碼保存起來(lái),命名activate-power-mode.js,并上傳到主題的JS文件夾中,參考路徑如下:/includes/js

    然后,將以下代碼添加到主題根目錄下的footer.php文件中的</body>標(biāo)簽前保存即可:

    <script src="<?php bloginfo('template_directory'); ?>/includes/js/activate-power-mode.js "></script>
    <script>
        POWERMODE.colorful = true; // ture 為啟用禮花特效
        POWERMODE.shake = false; // false 為禁用震動(dòng)特效
        document.body.addEventListener('input', POWERMODE);
    </script>

    如果移動(dòng)設(shè)備異常特效,以下代碼判斷移動(dòng)端(參考):

    <?php if (is_single() || is_page() ) { ?>
    <script src="<?php bloginfo('template_directory'); ?>/includes/js/activate-power-mode.js"></script>
    <script type="text/javascript"> 
    if(!(/iphone|ipod|ipad|ipad|Android|nokia|blackberry|webos|webos|webmate|bada|lg|ucweb|skyfire|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|wap|mobile/i.test(navigator.userAgent.toLowerCase()))){
    POWERMODE.colorful = true;
    POWERMODE.shake = false;
    document.body.addEventListener('input', POWERMODE); 
    }
    </script>

    如果已經(jīng)有判斷條件代碼<?php if (is_single() || is_page() ) { ?>,只需要將第上一段的代碼添加在里面即可。

    注意文件路徑與文件名

    WordPress美化 - 怎么添加評(píng)論框禮花特效?-Npcink
    WordPress美化 - 怎么添加評(píng)論框禮花特效?-Npcink

    判斷移動(dòng)端設(shè)備函數(shù) - WordPress開發(fā)

    如果您也喜歡這樣有趣的特效,那么還可以看看這款wordpress美化教程:

    WordPress美化 - 怎么添加評(píng)論框禮花特效?-Npcink
    WordPress美化 - 怎么添加評(píng)論框禮花特效?-Npcink

    給博客加個(gè)喜慶的春節(jié)紅燈籠 - WordPress教程

    下載權(quán)限
    查看
    • 免費(fèi)下載
      評(píng)論并刷新后下載
      登錄后下載
    • {{attr.name}}:
    您當(dāng)前的等級(jí)為
    登錄后免費(fèi)下載登錄 小黑屋反思中,不準(zhǔn)下載! 評(píng)論后刷新頁(yè)面下載評(píng)論 支付以后下載 請(qǐng)先登錄 您今天的下載次數(shù)(次)用完了,請(qǐng)明天再來(lái) 支付積分以后下載立即支付 支付以后下載立即支付 您當(dāng)前的用戶組不允許下載升級(jí)會(huì)員
    您已獲得下載權(quán)限 您可以每天下載資源次,今日剩余
    教程

    WordPress 配置指南

    2018-10-18 22:26:10

    教程

    推薦插件概述

    2018-10-20 20:20:20

    ??
    Npcink上的部份代碼及教程來(lái)源于互聯(lián)網(wǎng),僅供網(wǎng)友學(xué)習(xí)交流,若您喜歡本文可附上原文鏈接隨意轉(zhuǎn)載。
    無(wú)意侵害您的權(quán)益,請(qǐng)發(fā)送郵件至 1355471563#qq.com 或點(diǎn)擊右側(cè) 私信:Muze 反饋,我們將盡快處理。
    0 條回復(fù) A文章作者 M管理員
      暫無(wú)討論,說(shuō)說(shuō)你的看法吧
    ?
    個(gè)人中心
    購(gòu)物車
    優(yōu)惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 成人影片一区免费观看| 亚洲av乱码一区二区三区 | 亚洲av无码片区一区二区三区| 色婷婷一区二区三区四区成人网| 亚洲天堂一区二区三区四区| 夜夜嗨AV一区二区三区| 中文字幕AV一区二区三区| 国产精品主播一区二区| 久久毛片一区二区| 国产精品美女一区二区| 亚洲一区二区三区精品视频| 中文字幕Av一区乱码| 日韩一区二区三区免费体验| 无码人妻一区二区三区在线视频 | 成人区人妻精品一区二区不卡视频| 国产福利一区二区三区| 久久精品动漫一区二区三区| 久久久久久一区国产精品| 国产精品一区二区久久沈樵| 日韩免费一区二区三区在线| 亚洲综合一区二区| 97久久精品无码一区二区天美| 亚洲国产一区二区a毛片| 免费播放一区二区三区| 国产电影一区二区| 亚洲午夜精品一区二区公牛电影院 | 亚洲av乱码一区二区三区香蕉| 日韩精品一区二区亚洲AV观看| 午夜精品一区二区三区免费视频| 日韩精品视频一区二区三区| 乱码精品一区二区三区| 无码国产精品一区二区免费虚拟VR| 国产福利一区二区三区在线视频| 国产福利一区二区三区在线视频| 成人区精品一区二区不卡亚洲| 另类国产精品一区二区| 内射一区二区精品视频在线观看 | 毛片一区二区三区无码| 内射白浆一区二区在线观看 | 精品一区二区三区| 一区二区三区在线视频播放|