前几天写了左边这个3D球状导航的文章分类,这里对实现细节做个简单记录。
效果:
分类标题呈现3D球状效果,点击分类标题的时候,会弹出这个分类对应的推荐文章列表。
效果截图:
HTML:
复制代码 代码如下:
<div id="mainList">
<div id="list">
<ul>
<li><a class="HTML" onclick="ClickLink(this)" href="#">HTML</a></li>
<li><a class="CSS" onclick="ClickLink(this)" href="#">CSS</a></li>
<li><a class="JS" onclick="ClickLink(this)" href="#">JavaScript</a></li>
<li><a class="AJAX" onclick="ClickLink(this)" href="#">Ajax</a></li>
<li><a class="ASPNET" onclick="ClickLink(this)" href="#">Asp.net</a></li>
<li><a class="CSHARP" onclick="ClickLink(this)" href="#">C#</a></li>
<li><a class="DEBUG" onclick="ClickLink(this)" href="#">Debugging</a></li>
<li><a class="PERF" onclick="ClickLink(this)" href="#">Performance</a></li>
<li><a class="ARCHITERT" onclick="ClickLink(this)" href="#">Architect</a></li>
</ul>
</div>
核心JS:动态生成3D球状云+弹出模式窗体-articlemap.js
复制代码 代码如下:
$(function() {
var element = $('#list a'); ;
var offset = 0;
var stepping = 0.02;
var list = $('#list');
var $list = $(list)
$list.mousemove(function(e) {
var topOfList = $list.eq(0).offset().top
var listHeight = $list.height()
stepping = (e.clientY - topOfList) / listHeight * 0.2 - 0.1;
});
for (var i = element.length - 1; i >= 0; i--) {
element[i].elemAngle = i * Math.PI * 2 / element.length;
}
setInterval(render, 50);
function render() {
for (var i = element.length - 1; i >= 0; i--) {
var angle = element[i].elemAngle + offset;
x = 120 + Math.sin(angle) * 30;
y = 45 + Math.cos(angle) * 40;
size = Math.round(15 - Math.sin(angle) * 15);
var elementCenter = $(element[i]).width() / 2;
var leftValue = (($list.width() / 2) * x / 100 - elementCenter) + "px"
$(element[i]).css("fontSize", size + "pt");
$(element[i]).css("opacity", size / 100);
$(element[i]).css("zIndex", size);
$(element[i]).css("left", leftValue);
$(element[i]).css("top", y + "%");
}
offset += stepping;
}
});
function ClickLink(item) {
var typName = $(item).text();
var links = null;
switch (typName) {
case "HTML":
links = TrainLinks(Links.HTML);
break;
case "CSS":
links = TrainLinks(Links.CSS);
break;
case "JavaScript":
links = TrainLinks(Links.JavaScript);
break;
case "Ajax":
links = TrainLinks(Links.Ajax);
break;
case "Asp.net":
links = TrainLinks(Links.Aspnet);
break;
case "C#":
links = TrainLinks(Links.CSharp);
break;
case "Debugging":
links = TrainLinks(Links.Debugging);
break;
case "Performance":
links = TrainLinks(Links.Performance);
break;
case "Architect":
links = TrainLinks(Links.Architect);
break;
}
CommonHelper.showNoBtnAlert(typName, links);
}
function TrainLinks(arr) {
var links = "这个可以有,暂时还没有!";
if (arr.length > 0) {
links = '<div><ul>';
}
for (i = 0, j = arr.length; i < j; i++) {
links += '<li><a target="_blank" href="' + arr[i][0] + '">' + arr[i][1] + '</a></li>';
}
if (arr.length > 0) {
links += '</ul></div>';
}
return links;
}
辅助存储推荐文章列表的JS(未来通过修改这个文件来维护推荐文章):
复制代码 代码如下:
var Links = {
HTML: [],
CSS: [["http://www.cnblogs.com/justinw/archive/2010/06/16/1758922.html", "制作50个超棒动画效果教程"]],
JavaScript: [
["http://www.cnblogs.com/justinw/archive/2009/11/27/1611728.html", "[原创]AjaxControlToolkitTests自动测试框架完全解析之一:架构篇 "],
["http://www.cnblogs.com/justinw/archive/2009/11/30/1613391.html", "[原创]AjaxControlToolkitTests自动测试框架完全解析之二:实现篇(1) "],
["http://www.cnblogs.com/justinw/archive/2009/12/02/1615382.html", "[JavaScript] 使用document.createDocumentFragment优化性能 "],
],
Ajax: [],
Aspnet: [],
CSharp: [],
......
Performance: [
["http://www.cnblogs.com/justinw/archive/2009/11/26/1611397.html", "[推荐]前端性能分析工具:dynaTrace Ajax Edition"]
]
}
其他:
这里还引用了jQuery UI的Dialog和一些自定义的CSS设置,具体参考实例即可。
下载源代码
相关推荐:
seo要什么条件,seo都需要做什么 ,交互ai求职
ChatGPT付款被拒?如何应对与解决常见支付问题,掉包ai
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新
什么是seo方法,何为seo ,ai写作神器源码是什么
SEO全站优化:打造强大网站排名的必备利器,AI论文写作的优点
ChatGPT网页版内容显示不全的原因与解决方案,ai超级绘
seo要学什么语言,做seo需要什么语言 ,ai martino
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
二SEO是什么,h二seo三是什么 ,ai手术机
ChatGPT网页打不开?快来看看这些解决办法,轻松恢复正常访问!,ai金色包装
ChatGPT-01:开创人工智能新纪元,AI如何画模糊的云层
在线AI文章生成:智能写作的无限可能
SEO怎么设置:让你的网站快速登上搜索引擎首页的秘密,Ai压印分色
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
ChatGPT显示“此网站无法加载站点”:背后原因与解决办法详解,用ai画明度渐变条
seo需要什么部门,seo主要干什么 ,ai接入仪器
AI免费生成文章的软件:轻松创作的秘密武器
seo需要什么人员,seo需要什么技能 ,画大学ai
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
文章AI扩写:突破创作瓶颈,提升写作效率的秘密武器
SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
互联网快照:记录数字时代的每个瞬间,全网seo怎么优化内容
SEO文案:如何通过巧妙布局提升网站排名,吸引更多流量,娄底网站建设工作文案
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
AI免费生成:开启智能创作新纪元,助力你的创意无限可能
文章续写AI:提升写作效率,创意无限
SEO已经成为数字营销的核心,如何利用SEO提升网站流量和转化率,含山网站优化推广
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
seo都有什么意思,seo 啥意思 ,ai园林
京东业绩再创新高:未来电商巨头的成功之道,如何做seo优化留痕
GoogleSEO打满分自然流量会高吗?揭开SEO优化的真相,猪插画ai
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
SEO手法如何通过精准优化提升网站排名,获取海量流量,网站建设协议流程是什么
SEO北京:数字时代,企业成功的关键,湖南网站建设湖南岚鸿
seo用什么手法,seo方式 ,ai绘画飞翔
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
SEO在线服务-让您的网站快速跃升至搜索引擎前列,江西小红书营销推广案例
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
seo需要学会什么编程,seo要会些什么 ,剪映怎样加ai
SEO才能:提升网站排名,突破网络营销的核心竞争力,南宁本地seo营销公司
seo重点是什么,seo最重要的指标 ,ai网格怎么用
为什么网站要做seo,网站做seo的目的是什么 ,ai初选