UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

2 lines (1 loc) 4.52 kB
"use strict";window.tagcloud=function(e,t){function s(t){var i=this;i.config=s._getConfig(t),i.box=i.config.element,i.fontsize=i.config.fontsize,i.radius=i.config.radius,i.isIntervel=i.config.isIntervel,i.activeScale=i.config.activeScale,i.depth=2*i.radius,i.size=2*i.radius,i.mspeed=i.config.mspeed,i.ispeed=i.config.ispeed,i.items=i._getItems(),i.direction=i.config.direction,i.keep=i.config.keep,i.active=!1,i.lasta=1,i.lastb=1,i.mouseX0=i.ispeed*Math.sin(i.direction*Math.PI/180),i.mouseY0=-i.ispeed*Math.cos(i.direction*Math.PI/180),i.mouseX=i.mouseX0,i.mouseY=i.mouseY0,i.index=-1,s._on(i.box,"mouseover",(function(){i.active=!0})),s._on(i.box,"mouseout",(function(){i.active=!1})),s._on(i.keep?e:i.box,"mousemove",(function(t){var s=e.event||t,o=i.box.getBoundingClientRect();i.mouseX=(s.clientX-(o.left+i.box.offsetWidth/2))/15,i.mouseY=(s.clientY-(o.top+i.box.offsetHeight/2))/15}));for(var o=0,n=i.items.length;o<n;o++)i.items[o].element.index=o,i.items[o].element.onmouseover=function(){i.index=this.index},i.items[o].element.onmouseout=function(){i.index=-1};s.boxs.push(i.box),i.update(i),i.box.style.visibility="visible",i.box.style.position="relative";for(o=0,n=i.items.length;o<n;o++)i.items[o].element.style.position="absolute",i.items[o].element.style.zIndex=o+1;i.isIntervel?i.up=setInterval((function(){i.update(i)}),10):clearInterval(i.up)}return s.boxs=[],s._set=function(e){if(-1==s.boxs.indexOf(e))return!0},Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var t=this.length>>>0,s=Number(arguments[1])||0;for((s=s<0?Math.ceil(s):Math.floor(s))<0&&(s+=t);s<t;s++)if(s in this&&this[s]===e)return s;return-1}),s._getConfig=function(e){var t,s={fontsize:16,radius:60,mspeed:"normal",ispeed:"normal",direction:135,keep:!0};if(t=e,"[object Object]"===Object.prototype.toString.call(t))for(var i in e)e.hasOwnProperty(i)&&(s[i]=e[i]);return s},s._getSc=function(e,t){var s=Math.PI/180;return[Math.sin(e*s),Math.cos(e*s),Math.sin(t*s),Math.cos(t*s)]},s._on=function(e,t,s,i){e.addEventListener?e.addEventListener(t,s,i):e.attachEvent?e.attachEvent("on"+t,s):e["on"+t]=s},s.prototype={constructor:s,update:function(){var e,t,i=this;if(i.active||i.keep||(i.mouseX=Math.abs(i.mouseX-i.mouseX0)<1?i.mouseX0:(i.mouseX+i.mouseX0)/2,i.mouseY=Math.abs(i.mouseY-i.mouseY0)<1?i.mouseY0:(i.mouseY+i.mouseY0)/2),e=-Math.min(Math.max(-i.mouseY,-i.size),i.size)/i.radius*i.mspeed,t=Math.min(Math.max(-i.mouseX,-i.size),i.size)/i.radius*i.mspeed,!(Math.abs(e)<=.01&&Math.abs(t)<=.01)){i.lasta=e,i.lastb=t;for(var o=s._getSc(e,t),n=0,a=i.items.length;n<a;n++){var l=i.items[n].x,m=i.items[n].y*o[1]+i.items[n].z*-o[0],r=i.items[n].y*o[0]+i.items[n].z*o[1],u=l*o[3]+r*o[2],h=m,f=r*o[3]-l*o[2];if(i.index==n)i.items[n].scale=1,i.items[n].fontsize=16,i.items[n].alpha=1,i.items[n].element.style.zIndex=99;else{var c=i.depth/(i.depth+f);i.items[n].x=u,i.items[n].y=h,i.items[n].z=f,i.items[n].scale=c,i.items[n].fontsize=Math.ceil(2*c)+i.fontsize-6,i.items[n].alpha=1.5*c-.5,i.items[n].element.style.zIndex=Math.ceil(10*c-5)}i.items[n].element.style.left=i.items[n].x+(i.box.offsetWidth-i.items[n].offsetWidth)/2+"px",i.items[n].element.style.top=i.items[n].y+(i.box.offsetHeight-i.items[n].offsetHeight)/2+"px",i.items[n].element.style.filter="alpha(opacity="+100*i.items[n].alpha+")",i.items[n].element.style.opacity=i.items[n].alpha}}},_getItems:function(){for(var e=this,t=[],s=e.box.children,i=s.length,o=0;o<i;o++){let n={angle:{}};n.angle.phi=Math.acos((2*o+1)/i-1),n.angle.theta=Math.sqrt((i+1)*Math.PI)*n.angle.phi,n.element=s[o],n.offsetWidth=n.element.offsetWidth,n.offsetHeight=n.element.offsetHeight,n.x=1.5*e.radius*Math.cos(n.angle.theta)*Math.sin(n.angle.phi),n.y=1.5*e.radius*Math.sin(n.angle.theta)*Math.sin(n.angle.phi),n.z=1.5*e.radius*Math.cos(n.angle.phi),n.element.style.left=n.x+(e.box.offsetWidth-n.offsetWidth)/2+"px",n.element.style.top=n.y+(e.box.offsetHeight-n.offsetHeight)/2+"px",t.push(n)}return t}},t.querySelectorAll||(t.querySelectorAll=function(e){var s,i=t.createElement("style"),o=[];for(t.documentElement.firstChild.appendChild(i),t._qsa=[],i.styleSheet.cssText=e+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",window.scrollBy(0,0),i.parentNode.removeChild(i);t._qsa.length;)(s=t._qsa.shift()).style.removeAttribute("x-qsa"),o.push(s);return t._qsa=null,o}),function(e){for(var t=(e=e||{}).selector||".tagcloud",i=document.querySelectorAll(t),o=[],n=0,a=i.length;n<a;n++)e.element=i[n],s._set(e.element)&&o.push(new s(e));return o}}(window,document);