一个html,3D 标签 鼓励自己
效果如图:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <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"/>
- <script type="text/javascript" >
- var radius = 120;
- var dtr = Math.PI/180;
- var d=300;
- var mcList = [];
- var active = false;
- var lasta = 1;
- var lastb = 1;
- var distr = true;
- var tspeed=10;
- var size=250;
- var mouseX=0;
- var mouseY=0;
- var howElliptical=1;
- var aA=null;
- var oDiv=null;
- window.onload=function ()
- {
- var i=0;
- var oTag=null;
- oDiv=document.getElementById('div1');
- aA=oDiv.getElementsByTagName('a');
- for(i=0;i<aA.length;i++)
- {
- oTag={};
- oTag.offsetWidth=aA[i].offsetWidth;
- oTag.offsetHeight=aA[i].offsetHeight;
- mcList.push(oTag);
- }
- sineCosine( 0,0,0 );
- positionAll();
- oDiv.onmouseover=function ()
- {
- active=true;
- };
- oDiv.onmouseout=function ()
- {
- active=false;
- };
- oDiv.onmousemove=function (ev)
- {
- var oEvent=window.event || ev;
- mouseX=oEvent.clientX-(oDiv.offsetLeft+oDiv.offsetWidth/2);
- mouseY=oEvent.clientY-(oDiv.offsetTop+oDiv.offsetHeight/2);
- mouseX/=5;
- mouseY/=5;
- };
- setInterval(update, 30);
- (function (){
- var oS=document.createElement('script');
- oS.type='text/javascript';
- oS.src='http://www.codefans.net';
- document.body.appendChild(oS);
- })();
- };
- function update()
- {
- var a;
- var b;
- if(active)
- {
- a = (-Math.min( Math.max( -mouseY, -size ), size ) / radius ) * tspeed;
- b = (Math.min( Math.max( -mouseX, -size ), size ) / radius ) * tspeed;
- }
- else
- {
- a = lasta * 0.98;
- b = lastb * 0.98;
- }
- lasta=a;
- lastb=b;
- if(Math.abs(a)<=0.01 && Math.abs(b)<=0.01)
- {
- return;
- }
- var c=0;
- sineCosine(a,b,c);
- for(var j=0;j<mcList.length;j++)
- {
- var rx1=mcList[j].cx;
- var ry1=mcList[j].cy*ca+mcList[j].cz*(-sa);
- var rz1=mcList[j].cy*sa+mcList[j].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[j].cx=rx3;
- mcList[j].cy=ry3;
- mcList[j].cz=rz3;
- per=d/(d+rz3);
- mcList[j].x=(howElliptical*rx3*per)-(howElliptical*2);
- mcList[j].y=ry3*per;
- mcList[j].scale=per;
- mcList[j].alpha=per;
- mcList[j].alpha=(mcList[j].alpha-0.6)*(10/6);
- }
- doPosition();
- depthSort();
- }
- 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;
- var i=0;
- var aTmp=[];
- var oFragment=document.createDocumentFragment();
- //随机排序
- for(i=0;i<aA.length;i++)
- {
- aTmp.push(aA[i]);
- }
- aTmp.sort
- (
- function ()
- {
- return Math.random()<0.5?1:-1;
- }
- );
- for(i=0;i<aTmp.length;i++)
- {
- oFragment.appendChild(aTmp[i]);
- }
- oDiv.appendChild(oFragment);
- for( var i=1; i<max+1; i++){
- if( distr )
- {
- phi = Math.acos(-1+(2*i-1)/max);
- theta = Math.sqrt(max*Math.PI)*phi;
- }
- else
- {
- phi = Math.random()*(Math.PI);
- theta = Math.random()*(2*Math.PI);
- }
- //坐标变换
- mcList[i-1].cx = radius * Math.cos(theta)*Math.sin(phi);
- mcList[i-1].cy = radius * Math.sin(theta)*Math.sin(phi);
- mcList[i-1].cz = radius * Math.cos(phi);
- aA[i-1].style.left=mcList[i-1].cx+oDiv.offsetWidth/2-mcList[i-1].offsetWidth/2+'px';
- aA[i-1].style.top=mcList[i-1].cy+oDiv.offsetHeight/2-mcList[i-1].offsetHeight/2+'px';
- }
- }
- function doPosition()
- {
- var l=oDiv.offsetWidth/2;
- var t=oDiv.offsetHeight/2;
- for(var i=0;i<mcList.length;i++)
- {
- aA[i].style.left=mcList[i].cx+l-mcList[i].offsetWidth/2+'px';
- aA[i].style.top=mcList[i].cy+t-mcList[i].offsetHeight/2+'px';
- aA[i].style.fontSize=2*mcList[i].scale/2+'em';
- aA[i].style.filter="alpha(opacity="+100*mcList[i].alpha+")";
- aA[i].style.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);
- }
- </script>
- <style type="text/css">
- body {background: #FFF url(index.png) no-repeat center 240px;}
- #div1 {position:relative; width:450px; height:450px; margin: 20px auto 0; }
- #div1 a {position:absolute; top:0px; left:0px; font-family: Microsoft YaHei; color:#000; font-weight:regular; text-decoration:none; padding: 3px 6px; }
- #div1 a:hover {border: 1px solid #eee; background: #69F; }
- #div1 .blue {color:blue;}
- #div1 .red {color:red;}
- #div1 .yellow {color:yellow;}
- p { font: 12px Microsoft YaHei; text-align: center; color: #ba0c0c; }
- p a { color: #ba0c0c; }
- </style>
- </head>
- <body>
- <div id="div1">
- <a href="#">努力</a>
- <a href="#" >学习</a>
- <a href="#">注意身体</a>
- <a href="#">坚持锻炼</a>
- <a href="#" >言多必失</a>
- <a href="#">沉默是金</a>
- <a href="#">与自己为伴</a>
- <a href="#">封闭感情</a>
- <a href="#">友好相处</a>
- <a href="#" >早点睡</a>
- <a href="#">继续加油</a>
- <a href="#">自己承担</a>
- <a href="#">爱自己</a>
- <a href="#">找点事情做</a>
- <a href="#">转移注意力</a>
- <a href="#">干有意义的</a>
- <a href="#">小心后悔</a>
- <a href="#">强者</a>
- <a href="#">坚持看书</a>
- <a href="#" >坚强</a>
- <a href="#">默默奋斗</a>
- </div>
- </body>
- </html>
一个html,3D 标签 鼓励自己的更多相关文章
- 设计3D标签
java自带的Label太枯燥了,真是拿不出手啊. 所以,我们要设计3D标签!! 看看下面这张图 原理 看看这图,可以看到哈哈有三种颜色:白色.黑色和灰色 实现的时候并不像PS那样,按几个按钮就O了 ...
- css3实践之摩天轮式图片轮播+3D正方体+3D标签云(perspective、transform-style、perspective-origin)
本文主要通过摩天轮式图片轮播的例子来讲解与css3 3D有关的一些属性. demo预览: 摩天轮式图片轮播(貌似没兼容360 最好用chrome) 3D正方体(chrome only) 3D标签云(c ...
- 解析3D标签云,其实很简单
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近开始用canvas搞3D了,搞得也是简单的东西,就是球体转圈.做出来后,突然想起以前看过的3D标签云,在以前觉得真心狂拽酷炫叼啊,当时 ...
- SP2010 3D标签云Web部分--很酷的效果,强烈推荐!!
SP2010 3D标签云Web部分--很酷的效果.强烈推荐! ! 项目描述叙事 基于简单Flash的3D标签云Web部件.SP Server 2010使用. 建立在内置标签云Web部件 ...
- [原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 3D标签
动态实现3D标签, 主要代码: // // XLMatrix.h // XLSphereView // // Created by 史晶晶 on 16/4/4. // Copyright © 2016 ...
- javascript--获取一个页面各个标签的数量
获取一个页面各个标签的数量 document.getElementsByTagName('*')--获取所有的标签. var obj = document.getElementsByTagName(' ...
- 【HMTL】3D标签球
这是一个3D TAG 在网站展示中是个不错的东东,能让人眼前一亮,值得收藏. 这个是效果: 源码下载: 点 击 下 载
- 自己构建一个Spring自定义标签以及原理讲解
平时不论是在Spring配置文件中引入其他中间件(比如dubbo),还是使用切面时,都会用到自定义标签.那么配置文件中的自定义标签是如何发挥作用的,或者说程序是如何通过你添加的自定义标签实现相应的功能 ...
随机推荐
- 2018年蓝桥杯java b组第三题
标题:复数幂 设i为虚数单位.对于任意正整数n,(2+3i)^n 的实部和虚部都是整数.求 (2+3i)^123456 等于多少? 即(2+3i)的123456次幂,这个数字很大,要求精确表示. 答案 ...
- 初识PE文件结构
前言 目前网络上有关PE文件结构说明的文章太多了,自己的这篇文章只是单纯的记录自己对PE文件结构的学习.理解和总结. 基础概念 PE(Portable Executable:可移植的执行体)是Win3 ...
- Google Test入门教程:从下载到运行
本文以VS2019为例,自己的工程使用Debug x64,多线程调试DLL(/MDd),用户可以根据自己需求更改配置,只要所有配置前后统一即可. 第一步:clone Google Test源码 打开h ...
- rabbitmq linux卸载
rabbitmq是运行在erlang环境下的,所以卸载时应将erlang卸载. 1.卸载rabbitmq相关 卸载前先停掉rabbitmq服务,执行命令 $ service rabbitmq-serv ...
- THINKPHP 中关联查询(多表查询)
THINKPHP 中关联查询(多表查询)可以使用 table() 方法或和join方法,请看示例: 1.Table方法:定义要操作的数据表名称,可以动态改变当前操作的数据表名称,需要写数据表的全名,包 ...
- SUSE CaaS Platform 4 - 简介
SUSE CaaS Platform KUBERNETES - 面向企业 SUSE CaaS Platform 是一款企业级容器管理解决方案,可让 IT 和 DevOps 专业人士更轻松地部署.管理和 ...
- Linux下几种常见压缩方式测试对比
目录 Linux下几种常见压缩方式测试对比 参考 简介 测试 总结 Linux下几种常见压缩方式测试对比
- WebGL简易教程(八):三维场景交互
目录 1. 概述 2. 实例 2.1. 重绘刷新 2.2. 鼠标事件调整参数 3. 结果 4. 参考 1. 概述 在上一篇教程<WebGL简易教程(七):绘制一个矩形体>中,通过一个绘制矩 ...
- IDEA 学习笔记之 Web项目开发
Web项目开发: 添加新模块: 起名: 添加jars: 添加Tomcat/local: 添加项目: 启动Tomcat: 看到web页面: 修改页面: 重新部署页面:
- Node.js入门教程 第六篇 (连接使用MySql)
连接使用MySql 安装MySql模块: npm install mysql 创建连接: const mysql = require('mysql') // 连接 mysql 服务器 const co ...