ホームページ  >  記事  >  ウェブフロントエンド  >  JSを使用して3D球状タグクラウドを実装するサンプルコード_JavaScriptスキル

JSを使用して3D球状タグクラウドを実装するサンプルコード_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:11:351561ブラウズ

問題:

1. インスタンスが不足していることが判明し、ホバーできません (解決予定)
2. システムがランダムかつ自動的に色を付けることができません (解決予定)

まずタグクラウドを使用してください。 有名な Web サイト -- 写真共有 Web サイト Flickr。タグクラウドのデザイナーは、インタラクションデザイナーのスチュワート・バターフィールド氏です。その後、タグ クラウドは del や Technorati などの Web サイトで採用されました。
タグ クラウド (または少なくとも加重リスト) が最初に公開されたのは、要約すると主に「サブリミナル アーカイブ」であるが、Douglas Coupland の Microserfs (1995) でした。 『Lester Leaps Out』では、ウェールズの詩人ランダウが同じロジックを使用してテキストに重みを付け、ジャズ音楽を説明するグラフィック テキスト マップを作成しています。この詩は彼の著書『Magic Fire Chevrolet』(1980年)に掲載されています。

HTML コード スニペット

コードをコピー コードは次のとおりです:



/title> ><link rel="stylesheet" type="text/css" href="3Dtag_style.css" /> <br><script type="text/javascript" src="3Dtag.js"> /script> <br><body> <br><div id="div1"> <br><a href="#"> <br><a href="#" class="red">Apple</a> <br><a href="#">バナナ</a> <br><a href= " #">西瓜</a> <br><a href="#" class="blue">3Dtag</a> <br><a href="#">SEO</ a> ; <br><a href="#">ドラゴンフルーツ</a><br><a href="#" class=" yellow">梨<br><a href ="#">球状</a> <br><a href="#" class="red">/a> <br><a href="#">PHP</ a> <br><a href="#" class="blue">Java</a> <br><a href="#">継承</a> ="#">C#</a> <br><a href="#" class="blue">OOP</a> <br><a href="#" >言語カテゴリ< /a> <br><a href="#" class="blue">/a> <br><a href="#">C <br> a href="#">/a> <br><a href="#">/a> <br><a href="#" >/a> 🎜></div> <br><p>3D 球状タグ</p> <br><br> <br>JavaScript コード スニペット<br><br><br><br><br>コードをコピー</div> <br><br> コードは次のとおりです:<div class="codetitle"> <div class="codebody" id="code60979"> <br>var 半径 = 120; //回転半径; <br>var dtr = Math.PI/180; <br>var d=300; <br><br>var mcList = []; <br>var active = false; <br>負荷負荷 = 1; <br>var lastb = 1; <br>var distr = true; <br>var tspeed=10; <br>var サイズ=250; <br><br>var マウスX=0; <br>var マウス Y=0; <br><br>var howElliptical=1; <br><br>var aA=zero; <br>var oTwo=ゼロ; <br><br>window.onload=function () <br>{ <br>var i=0; <br>var oTag=null; <br><br>oDiv=document.getElementById('div1'); <br><br>aA=oDiv.getElementsByTagName('a'); <br><br>for(i=0;i<aa.length>{ <br>oTag={}; <br><br>oTag.offsetWidth=aA[i].offsetWidth; <br>oTag.offsetHeight=aA[i].offsetHeight; <br><br>mcList.push(oTag); <br>} <br><br>sineCosine( 0,0,0 ); <br><br>positionAll(); <br><br>oDiv.onmouseover=function () <br>{ <br>active=true; <br>}; <br><br>oDiv.onmouseout=function () <br>{ <br>active=false; <br>}; <br><br>oDiv.onmousemove=function (ev) <br>{ <br>var oEvent=window.event ||家; <br><br>mouseX=oEvent.clientX-(oDiv.offsetLeft oDiv.offsetWidth/2); <br>mouseY=oEvent.clientY-(oDiv.offsetTop oDiv.offsetHeight/2); <br><br>マウスX/=5; <br>マウスY/=5; <br>}; <br><br>setInterval(更新, 30); <br>}; <br><br>関数 update() <br>{ <br>var a; <br>はbでした。 <br><br>if(active) <br>{ <br>a = (-Math.min( Math.max( -mouseY, -size ), size ) / radius ) * tspeed; <br>b = (Math.min( Math.max( -mouseX, -size ), size ) / radius ) * tspeed; <br>} <br>else <br>{ <br>a = 負荷 * 0.98; <br>b = lastb * 0.98; <br>} <br><br>load=a; <br>loadb=b; <br><br>if(Math.abs(a){ <br>return; <br>} <br><br>var c=0; <br>cineCosine(a,b,c); <br>for(var j=0;j<mclist.length>{ <br>var rx1=mcList[j].cx; <br>var ry1=mcList[j].cy*ca mcList[j].cz*(-sa); <br>var rz1=mcList[j].cy*sa mcList[j].cz*ca; <br><br>var rx2=rx1*cb rz1*sb; <br>var ry2=ry1; <br>var rz2=rx1*(-cb) rz1*cb; <br><br>var rx3=rx2*cc ry2*(-sc); <br>var ry3=rx2*sc ry2*cc; <br>var rz3=rz2; <br><br>mcList[j].cx=rx3; <br>mcList[j].cy=ry3; <br>mcList[j].cz=rz3; <br><br>per=d/(d rz3); <br><br>mcList[j].x=(howElliptical*rx3*per)-(howElliptical*2); <br>mcList[j].y=ry3*per; <br>mcList[j].scale=per; <br>mcList[j].alpha=per; <br><br>mcList[j].alpha=(mcList[j].alpha-0.6)*(10/6); <br>} <br><br>doPosition(); <br>深さソート(); <br>} <br><br>関数 DepthSort() <br>{ <br>var i=0; <br>var aTmp=[]; <br><br>for(i=0;i<aa.length>{ <br>aTmp.push(aA[i]); <br>} <br><br>aTmp.sort <br>( <br>function (vItem1, vItem2) <br>{ <br>if(vItem1.cz>vItem2.cz) <br>{ <br> return -1; <br>} <br>else if(vItem1.cz<vItem2.cz) <br>{ <br>return 1 <br>} <br>else <br>{ <br>return <br>} <br>} <br>); <br><br>for(i=0;i<atmp.length>{ <br>aTmp[i].style.zIndex=i; <br>} <br>} <br><br>関数positionAll() <br>{ <br>var phi=0; <br>var theta=0; <br>var max=mcList.length; <br>var i=0; <br><br>var aTmp=[]; <br>var oFragment=document.createDocumentFragment(); <br><br>//随机排序 <br>for(i=0;i<aa.length>{ <br>aTmp.push(aA[i]); <br>} <br><br>aTmp.sort <br>( <br>function () <br>{ <br>return Math.random()} <br>); <br><br>for(i=0;i<atmp.length>{ <br>oFragment.appendChild(aTmp[i]); <br>} <br><br>oDiv.appendChild(oFragment); <br><br>for( var i=1; i<max i>if( distr ) <br>{ <br>phi = Math.acos(-1 (2*i-1) /最大); <br>theta = Math.sqrt(max*Math.PI)*phi; <br>} <br>else <br>{ <br>phi = Math.random()*(Math.PI); <br>theta = Math.random()*(2*Math.PI); <br>} <br>//坐标变换 <br>mcList[i-1].cx = radius * Math.cos(theta)*Math.sin(phi); <br>mcList[i-1].cy = radius * Math.sin(theta)*Math.sin(phi); <br>mcList[i-1].cz = 半径 * Math.cos(phi); <br><br>aA[i-1].style.left=mcList[i-1].cx oDiv.offsetWidth/2-mcList[i-1].offsetWidth/2 'px'; <br>aA[i-1].style.top=mcList[i-1].cy oDiv.offsetHeight/2-mcList[i-1].offsetHeight/2 'px'; <br>} <br>} <br><br>function doPosition() <br>{ <br>var l=oDiv.offsetWidth/2; <br>var t=oDiv.offsetHeight/2; <br>for(var i=0;i<mclist.length>{ <br>aA[i].style.left=mcList[i].cx l-mcList[i].offsetWidth/2 'ピクセル'; <br>aA[i].style.top=mcList[i].cy t-mcList[i].offsetHeight/2 'px'; <br><br>aA[i].style.fontSize=Math.ceil(12*mcList[i].scale/2) 8 'px'; <br><br>aA[i].style.filter="alpha(opacity=" 100*mcList[i].alpha ")"; <br>aA[i].style.opacity=mcList[i].alpha; <br>} <br>} <br><br>関数 sineCosine( a, b, c) <br>{ <br>sa = Math.sin(a * dtr); <br>ca = Math.cos(a * dtr); <br>sb = Math.sin(b * dtr); <br>cb = Math.cos(b * dtr); <br>sc = Math.sin(c * dtr); <br>cc = Math.cos(c * dtr); <br>} <br></mclist.length></max></atmp.length></aa.length></atmp.length></aa.length></mclist.length></aa.length> </div> <br>CSS コンテンツ <br><div class="codetitle"> <span><a style="CURSOR: pointer" data="38953" class="copybut" id="copybut38953" onclick="doCopy('code38953')"><u> </u></a></span> コンテンツを追加します:</div> <div class="codebody" id="code38953"> <br>body {background: #000 url(index.png) リピートなし中心 230px;} <br>#div1 {position:relative;幅:450ピクセル;高さ:450ピクセル;マージン: 20px 自動 0; } <br>#div1 a {位置:絶対;上:0px;左:0ピクセル;フォントファミリー: Microsoft YaHei;色:#fff;フォントの太さ:太字;テキスト装飾:なし;パディング: 3px 6px; } <br>#div1 a:hover {ボーダー: 1px ソリッド #eee;背景: #000; } <br>#div1 .blue {color:blue;} <br>#div1 .red {color:red;} <br>#div1 . yellow {color: yellow;} <br><br>p { font: 16px Microsoft YaHei;テキスト整列: 中央;色: #ba0c0c; } <br>p a { font-size: 14px;色: #ba0c0c; } <br>pa:hover { 色: 赤; } <br> </div> </div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="JavascriptでStringオブジェクトを変更し、スペースを削除する機能を追加(サンプルコード)_JavaScriptスキル" href="http://m.php.cn/ja/faq/15121.html">JavascriptでStringオブジェクトを変更し、スペースを削除する機能を追加(サンプルコード)_JavaScriptスキル</a></span><span>次の記事:<a class="dBlack" title="JavascriptでStringオブジェクトを変更し、スペースを削除する機能を追加(サンプルコード)_JavaScriptスキル" href="http://m.php.cn/ja/faq/15123.html">JavascriptでStringオブジェクトを変更し、スペースを削除する機能を追加(サンプルコード)_JavaScriptスキル</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1609.html" title="Bootstrap リスト グループ コンポーネントの詳細な分析" class="aBlack">Bootstrap リスト グループ コンポーネントの詳細な分析</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1640.html" title="JavaScript関数のカリー化の詳細説明" class="aBlack">JavaScript関数のカリー化の詳細説明</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1949.html" title="JS パスワードの生成と強度検出の完全な例 (デモ ソース コードのダウンロード付き)" class="aBlack">JS パスワードの生成と強度検出の完全な例 (デモ ソース コードのダウンロード付き)</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2248.html" title="Angularjs は WeChat UI (weui) を統合します" class="aBlack">Angularjs は WeChat UI (weui) を統合します</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2351.html" title="JavaScript を使用して繁体字中国語と簡体字中国語をすばやく切り替える方法と、簡体字中国語と繁体字中国語の切り替えをサポートする Web サイトのトリック_javascript スキル" class="aBlack">JavaScript を使用して繁体字中国語と簡体字中国語をすばやく切り替える方法と、簡体字中国語と繁体字中国語の切り替えをサポートする Web サイトのトリック_javascript スキル</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="http://m.php.cn/ja/about/us.html">私たちについて</a><a href="http://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="http://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>