I saw a very interesting tag cloud, 3D spherical, compatible with IE 8, available for personal testing! Other versions have not been tested. If you think it's interesting, please record it and study it. The address of the article I read will be released below this article. Let's take a look at the effect:
Next is the code, html + css + js, which is not based on jQuery, so there is no need to introduce it. You can see the effect after copying the code:
<div id="div1"><a href="http://www.cnblogs.com/ntt1219/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Forget the taste</a><a href="http://www.cnblogs.com/ntt1219/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Forget the taste</a><a href="http://www.cnblogs.com/ntt1219/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Forget the taste</a><a href="http://www.cnblogs.com/ntt1219/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Forget the taste</a> </div>
body {background: #000 url(index.png) no-repeat center 230px;}#div1 {position:relative; width:450px; height:450px; margin: 20px auto 0; }#div1 a {position:absolute; top:0px; left:0px; font-family: Microsoft YaHei; color:#fff; font-weight:bold; text-decoration:none; padding: 3px 6px; }#div1 a:hover {border: 1px solid #eee; background: #000; }#div1 .blue {color:blue;}#div1 .red {color:red;}#div1 .yellow {color:yellow;} var radius = 120;var dtr = Math.PI/180;var d=300;var mcList = [];var active = false;var last = 1;var lastb = 1;var distr = true;var speed=10;var size=250;var mouseX=0;var mouseY=0;var howElliptical=1;var aA=null;var oDiv=null;window.onload=function (){var i=0;var oTag=null;oDiv=document.getElementById('div1');aA=oDiv.getElementsByTagName('a');for(i=0;i<aA.length;i++){oTag={};oTag.offsetWidth=aA[i].offsetWidth;oTag.offsetHeight=aA[i].offsetHeight;mcList.push(oTag);}sineCosine( 0,0,0 );positionAll();oDiv.onmouseover=function (){active=true;};oDiv.onmouseout=function (){active=false;};oDiv.onmousemove=function (ev){var oEvent=window.event || ev;mouseX=oEvent.clientX-(oDiv.offsetLeft+oDiv.offsetWidth/2);mouseY=oEvent.clientY-(oDiv.offsetTop+oDiv.offsetHeight/2);mouseX/=5;mouseY/=5;};setInterval(update, 30);};function update(){var a;var b;if(active){a = (-Math.min( Math.max( -mouseY, -size ), size ) / radius ) * speed;b = (Math.min( Math.max( -mouseX, -size ), size ) / radius ) * speed;}else{a = last * 0.98;b = lastb * 0.98;}lasta=a;lastb=b;if(Math.abs(a)<=0.01 && Math.abs(b)<=0.01){return;}var c=0;sineCosine(a,b,c);for(var j=0;j<mcList.length;j++){var rx1=mcList[j].cx;var ry1=mcList[j].cy*ca+mcList[j].cz*(-sa);var rz1=mcList[j].cy*sa+mcList[j].cz*ca;var rx2=rx1*cb+rz1*sb;var ry2=ry1;var rz2=rx1*(-sb)+rz1*cb;var rx3=rx2*cc+ry2*cc;var ry3=rx2*sc+ry2*cc;var rz3=rz2;mcList[j].cx=rx3;mcList[j].cy=ry3;mcList[j].cz=rz3;per=d/(d+rz3);mcList[j].x=(howElliptical*rx3*per)-(howElliptical*2);mcList[j].y=ry3*per;mcList[j].scale=per;mcList[j].alpha=per;mcList[j].alpha=(mcList[j].alpha-0.6)*(10/6);}doPosition();depthSort();}function depthSort(){var i=0;var aTmp=[];for(i=0;i<aA.length;i++){aTmp.push(aA[i]);}aTmp.sort(function (vItem1, vItem2){if(vItem1.cz>vItem2.cz){return -1;}else if(vItem1.cz<vItem2.cz){return 1;}else{return 0;}});for(i=0;i<aTmp.length;i++){aTmp[i].style.zIndex=i;}}function positionAll(){var phi=0;var theta=0;var max=mcList.length;var i=0;var i=0;var aTmp=[];var oFragment=document.createDocumentFragment();//Random sort for(i=0;i<aA.length;i++){aTmp.push(aA[i]);}aTmp.sort(function (){return Math.random()<0.5?1:-1;});for(i=0;i<aTmp.length;i++){oFragment.appendChild(aTmp[i]);}oDiv.appendChild(oFragment);for( var i=1; i<max+1; i++){if( distr ){phi = Math.acos(-1+(2*i-1)/max);theta = Math.sqrt(max*Math.PI)*phi;}else{phi = Math.random()*(Math.PI);theta = Math.random()*(2*Math.PI);}//Coordinate transformation mcList[i-1].cx = radius * Math.cos(theta)*Math.sin(phi);mcList[i-1].cy = radius * Math.sin(theta)*Math.sin(phi);mcList[i-1].cz = radius * Math.cos(phi);aA[i-1].style.left=mcList[i-1].cx+oDiv.offsetWidth/2-mcList[i-1].offsetWidth/2+'px';aA[i-1].style.top=mcList[i-1].cy+oDiv.offsetHeight/2-mcList[i-1].offsetHeight/2+'px';}}function doPosition(){var l=oDiv.offsetWidth/2;var t=oDiv.offsetHeight/2;for(var i=0;i<mcList.length;i++){aA[i].style.left=mcList[i].cx+l-mcList[i].offsetWidth/2+'px';aA[i].style.top=mcList[i].cy+t-mcList[i].offsetHeight/2+'px';aA[i].sty le.fontSize=Math.ceil(12*mcList[i].scale/2)+8+'px';aA[i].style.filter="alpha(opacity="+100*mcList[i].alpha+")";aA[i].style.opacity=mcList[i].alpha;}}function sineCosine( a, b, c){sa = Math.sin(a * dtr);ca = Math.cos(a * dtr);sb = Math.sin(b * dtr);cb = Math.cos(b * dtr);sc = Math.sin(c * dtr);cc = Math.cos(c * dtr);}