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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json