php 彩色标签插件,emlog彩色3D标签云 - 非插件

2024-01-18 07:50
文章标签 php 3d 彩色 插件 标签 emlog

本文主要是介绍php 彩色标签插件,emlog彩色3D标签云 - 非插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

emlog彩色3D标签云 - 非插件

刘振兴

Emlog相关

2015年10月02日

11689

5条评论

刚才在emlog模板中心有款新出的模板,进入了作者的主页,看上了它那个侧边上的3D标签云,看上去还是很不错的,就给扒了下来

本人菜鸟一枚,各位大大请轻喷,下面是使用上的效果,也可以看我的侧边,已经启用的

c6f7cb59e30f4bd2e1aa47b5560f5bba.png

是不是看上去还不错,下面来讲下实现过程

首先是css样式部分

/*标签云*/

#tag_cloud_widget{position:relative;width:240px;height:240px;margin:10px auto 10px}

#tag_cloud_widget a{position:absolute;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap;top:0;left:0;padding:3px 5px;border:0}

#tag_cloud_widget a:hover{background:#d02f53;display:block}

#tag_cloud_widget a:nth-child(n){background:#666;border-radius:3px;display:inline-block;line-height:18px;margin:0 10px 15px 0}

#tag_cloud_widget a:nth-child(2n){background:#d1a601}

#tag_cloud_widget a:nth-child(3n){background:#286c4a}

#tag_cloud_widget a:nth-child(5n){background:#518ab2}

#tag_cloud_widget a:nth-child(4n){background:#c91d13}

然后是js部分

var radius = 100;

var d = 200;

var dtr = Math.PI / 180;

var mcList = [];

var lasta = 1;

var lastb = 1;

var distr = true;

var tspeed = 11;

var size = 200;

var mouseX = 0;

var mouseY = 10;

var howElliptical = 1;

var aA = null;

var oDiv = null;

window.onload = function() {

var i = 0;

var oTag = null;

oDiv = document.getElementById('tag_cloud_widget');

aA = oDiv.getElementsByTagName('a');

for (i = 0; i < aA.length; i++) {

oTag = {};

aA[i].onmouseover = (function(obj) {

return function() {

obj.on = true;

this.style.zIndex = 9999;

this.style.color = '#fff';

this.style.background = '#0099ff';

this.style.padding = '5px 5px';

this.style.filter = "alpha(opacity=100)";

this.style.opacity = 1

}

})(oTag) aA[i].onmouseout = (function(obj) {

return function() {

obj.on = false;

this.style.zIndex = obj.zIndex;

this.style.color = '#fff';

this.style.background = '#30899B';

this.style.padding = '5px';

this.style.filter = "alpha(opacity=" + 100 * obj.alpha + ")";

this.style.opacity = obj.alpha;

this.style.zIndex = obj.zIndex

}

})(oTag) oTag.offsetWidth = aA[i].offsetWidth;

oTag.offsetHeight = aA[i].offsetHeight;

mcList.push(oTag)

}

sineCosine(0, 0, 0);

positionAll(); (function() {

update();

setTimeout(arguments.callee, 40)

})()

};

function update() {

var a, b, c = 0;

a = (Math.min(Math.max( - mouseY, -size), size) / radius) * tspeed;

b = ( - Math.min(Math.max( - mouseX, -size), size) / radius) * tspeed;

lasta = a;

lastb = b;

if (Math.abs(a) <= 0.01 && Math.abs(b) <= 0.01) {

return

}

sineCosine(a, b, c);

for (var i = 0; i < mcList.length; i++) {

if (mcList[i].on) {

continue

}

var rx1 = mcList[i].cx;

var ry1 = mcList[i].cy * ca + mcList[i].cz * ( - sa);

var rz1 = mcList[i].cy * sa + mcList[i].cz * ca;

var rx2 = rx1 * cb + rz1 * sb;

var ry2 = ry1;

var rz2 = rx1 * ( - sb) + rz1 * cb;

var rx3 = rx2 * cc + ry2 * ( - sc);

var ry3 = rx2 * sc + ry2 * cc;

var rz3 = rz2;

mcList[i].cx = rx3;

mcList[i].cy = ry3;

mcList[i].cz = rz3;

per = d / (d + rz3);

mcList[i].x = (howElliptical * rx3 * per) - (howElliptical * 2);

mcList[i].y = ry3 * per;

mcList[i].scale = per;

var alpha = per;

alpha = (alpha - 0.6) * (10 / 6);

mcList[i].alpha = alpha * alpha * alpha - 0.2;

mcList[i].zIndex = Math.ceil(100 - Math.floor(mcList[i].cz))

}

doPosition()

}

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;

for (var i = 0; i < max; i++) {

if (distr) {

phi = Math.acos( - 1 + (2 * (i + 1) - 1) / max);

theta = Math.sqrt(max * Math.PI) * phi

} else {

phi = Math.random() * (Math.PI);

theta = Math.random() * (2 * Math.PI)

}

mcList[i].cx = radius * Math.cos(theta) * Math.sin(phi);

mcList[i].cy = radius * Math.sin(theta) * Math.sin(phi);

mcList[i].cz = radius * Math.cos(phi);

aA[i].style.left = mcList[i].cx + oDiv.offsetWidth / 2 - mcList[i].offsetWidth / 2 + 'px';

aA[i].style.top = mcList[i].cy + oDiv.offsetHeight / 2 - mcList[i].offsetHeight / 2 + 'px'

}

}

function doPosition() {

var l = oDiv.offsetWidth / 2;

var t = oDiv.offsetHeight / 2;

for (var i = 0; i < mcList.length; i++) {

if (mcList[i].on) {

continue

}

var aAs = aA[i].style;

if (mcList[i].alpha > 0.1) {

if (aAs.display != '') aAs.display = ''

} else {

if (aAs.display != 'none') aAs.display = 'none';

continue

}

aAs.left = mcList[i].cx + l - mcList[i].offsetWidth / 2 + 'px';

aAs.top = mcList[i].cy + t - mcList[i].offsetHeight / 2 + 'px';

aAs.filter = "alpha(opacity=" + 100 * mcList[i].alpha + ")";

aAs.zIndex = mcList[i].zIndex;

aAs.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)

}

下面是php部分,修改module里的侧边标签方法

//3D标签云

function widget_tag($title){

global $CACHE;

$tag_cache = $CACHE->readCache('tags');?>

<?php echo $title;?>

<?php echo $value['tagname']; ?>

php函数可能和大家的有些不同,更具情况修改就行了,有什么问题可以QQ联系我,如果你最基础的都不会,那就别联系我了,先去看看教程

评论一下

赞助本站

版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《IT技术宅》。

本文网址:https://www.ilt.me/emlog/33.html

这篇关于php 彩色标签插件,emlog彩色3D标签云 - 非插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618417

相关文章

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行