/**
* @author myemptynae
*/
function JsTagCloud(config) {
// 对对的 Div 标标
var cloud = document.getElementById(config.CloudId);
this._cloud = cloud;
// w, h 是 Div 宽的高
var w = parseInt(this._getStyle(cloud, 'width'));
var h = parseInt(this._getStyle(cloud, 'height'));
this.width = (w - 100) / 2;
this.height = (h - 50) / 2;
// 初始化
this._items = cloud.getElementsByTagName('a');
this._count = this._items.length;
this._angle = 360 / (this._count);
this._radian = this._angle * (2 * Math.PI / 360);
this.step = 0;
}
//获对取象 Style
JsTagCloud.prototype._getStyle = function(elem, name) {
return window.getComputedStyle ? window.getComputedStyle(elem, null)[name]
: elem.currentStyle[name];
};
//标标渲染云
JsTagCloud.prototype._render = function() {
for (var i = 0; i < this._count; i++) {
var item = this._items[i];
var thisRadian = (this._radian * i) + this.step;
var sinV = Math.sin(thisRadian);
var cosV = Math.cos(thisRadian);
// 设置 CSS 联联内式
item.style.left = (sinV * this.width) + this.width + 'px';
item.style.top = this.height + (cosV * 50) + 'px';
item.style.fontSize = cosV * 10 + 20 + 'pt';
item.style.zIndex = cosV * 1000 + 2000;
item.style.opacity = (cosV / 2.5) + 0.6;
item.style.filter = " alpha(opacity=" + ((cosV / 2.5) + 0.6) * 100 + ")";
}
this.step += 0.007;
};
//开始
JsTagCloud.prototype.start = function() {
setInterval (function(who) {
return function()
{
who._render();
};
}(this), 20);
};
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link rel="stylesheet" type="text/css" href="tg.css" />
<script src="tg.js"></script>
<script>
window.onload=function (){
var tagCloud = new JsTagCloud({ CloudId: 'tagCloud' });
tagCloud.start();
};
</script>
</head>
<body>
<div id="tagCloud">
<a href="#">javascript</a>
<a href="#">html</a>
<a href="#">css</a>
</div>
</body>
</html>
#tagCloud {
height: 300px;
width: 600px;
position: relative;
margin: 0;
overflow: hidden;
}
#tagCloud a {
position: absolute;
text-decoration: none;
color: #0B61A4;
text-shadow: #66A3D2 1px -1px 1px;
}
分享到:
相关推荐
js 3d标签云特效关键词文字球状标签云代码
3D标签云实现源代码 3D标签云实现源代码
字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d球形标签云字符云 3d...
Javascript实现3D标签云的效果
很好用的3d 标签云效果 可以实现动态的视觉感受。如果想要的你页面动起来。那么现在就下载吧
超酷的js+css3实现的3D标签云特效.
Flex 3D标签云 Flex实现3d FlexCumulusTagCloud Flex学习3d教程 flex builder 如何做出3D标签云
android项目中的标签控件,用于实现热门标签的功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android 实现 标签 拖动 改变位置.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
JavaScript案例特效 - 3D标签云
一款简单好用的HTML5 3D标签云动画旋转代码,不需要额外的CSS样式,可使用鼠标与标签进行互动,鼠标悬停标签云停止旋转,所指向tag标签文字颜色高亮显示,其它标签文字则变暗。
一个简单的基于Flash的3D标签云Web部件,SP Server 2010使用。建立在内置标签云Web部件和WordPress的Cumulus插件基础上。 它和标准标签云有相同的设置,但是以美妙的3D云效果呈现。 请注意,这个Web部件依靠SP标签...
js和css完成标签云的制作,标签云立体展示,不断旋转的立体效果
基于vue实现3D动态词云/3D标签云
卡片编辑文字并自动换行,可以在图片上编辑文字,并且可以自动换行处理。.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
这个3D标签云可不是N年前的那个Flash版的 wp-cumulus, 这个3D旋转标签云完全使用JS代码编写,很小只有几K,不用担心像垃圾Flash对资源的耗费。
3D标签云网页特效代码,运用了球坐标系技术。球坐标是一种三维坐标。分别有原点、方位角、仰角、距离构成。 设P(x,y,z)为空间内一点,则点P也可用这样三个有次序的数r,φ,θ来确定,其中r为原点O与点P间...
CSS3实现的3d标签云动画
云标签按钮立体式切换效果,3D效果比较明显。使用方法较为简单,直接导入JS样式,复制html代码到你想要的地方即可。大小均可在JS里做修改