互联网技术 · 2023年11月23日

为WordPress评论界面增添烟花效果

这几天在逛别人博客的时候,好几个站的评论界面打字都有礼花特效,有的还有震动特效,所以就去搜了下,实现的方法非常简单,下面分享一下实现WordPress评论框烟花和震动特效的实现方法。

WordPress评论界面添加烟花特效

烟花特效js文件下载:

实现礼花绽放特效主要就是依靠的这个js文件,具体代码如下,你可以选择把下面的代码复制了新建为一个js文件,也可以直接点这里下。activate-power-mode.zip

(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);returnhsla(+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}}())}])});

烟花评论特效具体实现步骤:

把下载的js文件上传到你网站,可以上传到你主题文件夹或者其他你习惯的文件夹里面。

然后编辑你主题的主题页脚 (footer.php)文件,加入下面这串代码

<?php if (is_single() || is_page() ) { ?> <script src="<?php bloginfo(template_directory); ?>/js/activate-power-mode.js "></script>  <script> POWERMODE.colorful = true; POWERMODE.shake = false; document.body.addEventListener(input, POWERMODE); </script> <?php }?>

添加位置你不知道加哪里就加到</body>标签前面。注意如果你不是把js文件上传到你主题文件夹下面的就需要修改script src=后面的位置信息。

方法来自从良未遂

另外,我还分享了给WordPress添加网页背景特效的文章,感兴趣的话看一看:给WordPress网站添加线段吸附鼠标特效

推荐文章
WordPress评论界面添加烟花效果
自己建网站的步骤
WordPress评论界面添加烟花效果
WordPress主机推荐
WordPress评论界面添加烟花效果
速卖通一件代发货网站

About The Author

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册