新增第170个小实例:打散文字随机浮动特效

This commit is contained in:
DESKTOP-BM6RJU5\wyanh 2022-07-05 19:07:00 +08:00
parent e9eb598cb4
commit b1d6fe0252
4 changed files with 68 additions and 1 deletions

View File

@ -176,4 +176,5 @@
166. HTML5+CSS3+JS小实例霜雾玻璃图片预览特效
167. HTML5+CSS3+JS小实例鼠标滚轮水平滚动
168. HTML5+CSS3+JS小实例仿优酷视频轮播图
169. HTML5+CSS3小实例网页底部间隔波浪动画特效
169. HTML5+CSS3小实例网页底部间隔波浪动画特效
170. HTML5+CSS3+JS小实例打散文字随机浮动特效

28
code/170/170.css Normal file
View File

@ -0,0 +1,28 @@
*{
margin: 0;
padding: 0;
}
body{
background-color: #000;
overflow: hidden;
}
#text{
color: #fff;
font-size: 20px;
width: 80vw;
line-height: 1.5;
margin: 100px auto;
}
#btn{
width: 150px;
height: 50px;
border: 1px solid #fff;
background: #000;
color: #fff;
font-size: 20px;
outline: none;
cursor: pointer;
border-radius: 8px;
display: block;
margin: 0 auto;
}

37
code/170/170.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<title>打散文字随机浮动特效</title>
<link rel="stylesheet" href="170.css">
</head>
<body>
<article>
<p id="text">你说帘外海棠,锦屏鸳鸯;后来庭院春深,咫尺画堂。你说笛声如诉,费尽思量;后来茶烟尚绿,人影茫茫。你说可人如玉,与子偕臧;后来长亭远望,夜色微凉。你说霞染天光,陌上花开与谁享;后来烟笼柳暗,湖心水动影无双。你说彼岸灯火,心之所向;后来渔舟晚唱,烟雨彷徨。你说水静莲香,惠风和畅;后来云遮薄月,清露如霜。你说幽窗棋罢,再吐衷肠;后来风卷孤松,雾漫山冈。你说红袖佯嗔,秋波流转思张敞;后来黛眉长敛,春色飘零别阮郎。你说暗香浮动,刹那光芒;后来玉殒琼碎,疏影横窗。你说良辰美景,乘兴独往;后来红尘紫陌,雪落太行。你说赋尽高唐,三生石上;后来君居淄右,妾家河阳。你说玉楼朱颜,飞月流觞迎客棹;后来幽谷居士,枕琴听雨卧禅房。你说高山流水,客答春江;后来章台游冶,系马垂杨。你说锦瑟韶光,华灯幢幢;后来荼蘼开至,青苔满墙。你说天地玄黄,风月琳琅;后来月斜江上,云淡天长。</p>
<button id="btn">放松一下</button>
</article>
</body>
</html>
<!-- 引入插件 -->
<script src="neontext.min.js"></script>
<script>
// 要操作的元素
// 按钮
const resetBtn=document.getElementById('btn');
// 初始化
const neontext=new Neontext('text');
// 打乱文字
neontext.render.run();
// 为按钮绑定点击事件
resetBtn.addEventListener('click',function(){
// 文字恢复
neontext.render.killer();
})
</script>

1
code/170/neontext.min.js vendored Normal file
View File

@ -0,0 +1 @@
function Neontext(n){var e=document.getElementById(n),o=e.innerText.split(""),t=this;window;this.resetTime=10,this.color=["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4caf50","#8bc34a","#cddc39","#ffeb3b","#ffc107","#ff9800","#ff5722","#795548","#9e9e9e","#607d8b"],this.randomColor=function(){var n=Math.floor(this.color.length*Math.random());return this.color[n]},this.posRangencala=function(){return e.hasAttribute("ele-range")?{minRange:{x:e.offsetLeft,y:e.offsetTop},maxRange:{x:e.offsetLeft+e.offsetWidth,y:e.offsetTop+e.offsetHeight}}:{minRange:{x:0,y:0},maxRange:{x:document.documentElement.clientWidth,y:document.documentElement.clientHeight}}},this.spanArr=function(){e.innerHTML="";var n=[];return o.forEach(function(o,s){var a=document.createElement("span");a.style.display="inline-block",a.innerHTML=o,a.style.position="relative",a.style.zIndex=e.hasAttribute("ele-range")?"1":"-1",a.style.color=t.randomColor(),a.own={pos:{x:0,y:0},ran:{x:-.5+Math.random(),y:-.5+Math.random()},speed:{x:1,y:1},dir:{x:1,y:1}},e.appendChild(a),n.push(a)}),n}(),this.spanOrigin=function(){this.spanArr.forEach(function(n,e){n.own.realPos={minx:n.offsetLeft,maxx:n.offsetLeft+n.offsetWidth,miny:n.offsetTop,maxy:n.offsetTop+n.offsetHeight}}),this.posRangen=this.posRangencala()},this.spanOrigin(),this.resetpos=function(){this.spanOrigin(),console.log(e+"===="+this.spanArr[0].own.pos.x+"===="+this.posRangen.maxRange.x),this.spanArr.forEach(function(n,e){n.own.realPos.minx+n.own.pos.x<t.posRangen.minRange.x&&(n.own.pos.x=0),n.own.realPos.maxx+n.own.pos.x>t.posRangen.maxRange.x&&(n.own.pos.x=0),n.own.realPos.miny+n.own.pos.y<t.posRangen.minRange.y&&(n.own.pos.y=0),n.own.realPos.maxy+n.own.pos.y>t.posRangen.maxRange.y&&(n.own.pos.y=0)})},this.floatText=function(){this.spanArr.forEach(function(n,e){(n.own.realPos.minx+n.own.pos.x<t.posRangen.minRange.x||n.own.realPos.maxx+n.own.pos.x>t.posRangen.maxRange.x)&&(n.own.dir.x=-n.own.dir.x),(n.own.realPos.miny+n.own.pos.y<t.posRangen.minRange.y||n.own.realPos.maxy+n.own.pos.y>t.posRangen.maxRange.y)&&(n.own.dir.y=-n.own.dir.y),n.own.pos.x+=n.own.ran.x*n.own.speed.x*n.own.dir.x,n.own.pos.y+=n.own.ran.y*n.own.speed.y*n.own.dir.y,n.style.transform="translateX("+n.own.pos.x+"px) translateY("+n.own.pos.y+"px)"})},this.floatBack=function(){if(this.spanArr.forEach(function(n,e){var o=n.own.pos.x-n.own.pos.x*t.resetTime/100,s=n.own.pos.y-n.own.pos.y*t.resetTime/100;n.style.transform="translateX("+o+"px) translateY("+s+"px)"}),100===this.resetTime)return cancelAnimationFrame(t.send),!0;this.resetTime+=5},this.restart=function(){this.spanArr.forEach(function(n,e){n.own.pos.x=0,n.own.pos.y=0})},this.render={run:function(){t.sren=requestAnimationFrame(t.render.run),t.floatText()},end:function(){t.send=requestAnimationFrame(t.render.end),t.floatBack()},killer:function(){t.floatBack()?(cancelAnimationFrame(t.send),t.restart(),t.resetTime=10,t.render.run()):(cancelAnimationFrame(t.sren),t.render.end())}},window.onresize=function(){t.resetpos()}}