环形文字 + css3制作图形 + animation无限正反旋转的一个小demo

少啰嗦,先看效果图:

(注意文字和太极图均可旋转,太极图使用css写成的!)

css:

/*太极图css--*/

.Taiji { margin: 100px;
width: 192px;
height: 96px;
background-color: #eee;
border-color: #333;
border-style: solid;
border-width: 4px 4px 100px 4px;
border-radius: 100%;
position: relative;
-webkit-animation: circleReverse 32s infinite linear; /*无限旋转*/
}
.Taiji:before {
content: "";
width: 24px;
height: 24px;
border: 36px solid #333;
background-color: #eee;
border-radius: 100%;
position: absolute;
top: 50%;
left: 0;
}
.Taiji:after {
content: "";
width: 24px;
height: 24px;
border: 36px solid #eee;
background-color: #333;
border-radius: 100%;
position: absolute;
top: 50%;
right: 0;
}

/*太极图 css--end*/

/*环形文字css--*/
.circular{
width: 232px;
height: 232px;
position: absolute;
left: -20px;
top: -20px;
font-size: 11px;
font-family: "microsoft yahei";
color: #333;
-webkit-animation: circle 16s infinite linear; /*无限旋转*/
}
.circular path { fill: none; }
.circular svg { display: block; overflow: visible; }

/*环形文字css--end*/

/*旋转动画css--animation*/
@-webkit-keyframes circle{ /*其父元素逆向旋转所以首先要抵消掉旋转的360度*/
0%{ transform:rotate(0deg); }
100%{ transform:rotate(-720deg); }
}
@-webkit-keyframes circleReverse{
0%{ transform:rotate(0deg); }
100%{ transform:rotate(360deg); }
}

/*css--end*/

html:

<div class="Taiji">
  <div class="circular">以无法为有法&nbsp;&nbsp;&nbsp;&nbsp;以无限为有限&nbsp;&nbsp;&nbsp;&nbsp;夫唯不争&nbsp;&nbsp;&nbsp;&nbsp;天下莫能与之争</div>
</div>

javascript:

/*封装函数,文档中如果需要环形文字只需写带有circular的class名的容器就行了(用几个就写几个)。举个栗子:<div class="circular">以无法为有法</div>*/

function $$(selector, context) {
context = context || document;
var elements = context.querySelectorAll(selector);
return Array.prototype.slice.call(elements);
}

$$(‘.circular‘).forEach(function(el) {
var NS = "http://www.w3.org/2000/svg";

var svg = document.createElementNS(NS, "svg");
svg.setAttribute("viewBox", "0 0 100 100");

var circle = document.createElementNS(NS, "path");
circle.setAttribute("d", "M0,50 a50,50 0 1,1 0,1z");
circle.setAttribute("id", "circle");

var text = document.createElementNS(NS, "text");
var textPath = document.createElementNS(NS, "textPath");
textPath.setAttributeNS("http://www.w3.org/1999/xlink", ‘xlink:href‘, ‘#circle‘);
textPath.textContent = el.textContent;
text.appendChild(textPath);

svg.appendChild(circle);
svg.appendChild(text);

el.textContent = ‘‘;
el.appendChild(svg);
});

参考:

http://www.jqhtml.com/8045.html

https://www.w3cplus.com/css3/css-secrets/circular-text.html

原文地址:https://www.cnblogs.com/codebook/p/9420399.html

时间: 2024-08-21 20:55:55

环形文字 + css3制作图形 + animation无限正反旋转的一个小demo的相关文章

模仿京东顶部搜索条效果制作的一个小demo

最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 1 #define kScreenWidth [UIScreen mainScreen].bounds.size.width 2 #define kScreenHeight [UIScreen mainScreen].bounds.size.height 3 4 #import "mainViewController.h" 5 6 @interface mainViewController

css3的一个小demo(箭头hover变化)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <style type="text/css"> 6 a{text-decoration: none; 7 color: #EE7A23;} 8 9 .select-self-area .select-btn .i-up-down { 10 wi

图解CSS3制作圆环形进度条的实例教程

圆环形进度条制作的基本思想还是画出基本的弧线图形,然后CSS3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解CSS3制作圆环形进度条的实例教程 首先,当有人说你能不能做一个圆形进度条效果出来时,如果是静态完整圆形进度条,那么就很简单了: .circleprogress{        width: 160px;        height: 160px;        border:20px solid red;        border-radius: 50

CSS3制作文字半透明倒影效果

/*------------------ITEYE 祈祷幸福(http://qidaoxingfu.iteye.com)原创 转载请注明-----------------*/ 效果如图.Ps.背景线条是背景图勒,和本文效果无关... html代码如下: Html代码   <div class="content"> <h3 title="专业技能">专业技能</h3> <div class="next"&g

CSS3制作渐变文字

CSS3制作渐变文字(-webkit-mask-image 与 -webkit-background-clip) 今天去css-tricks无意间发现了标题运用渐变文字这一效果,这使的想起了webkit内核浏览器的一些私有属性.而实现渐变文字这一特效可以借助webkit浏览器的两个私有属性-webkit-mask-image与-webkit-background-clip. 既然称之为webkit私用属性,我想大家都懂的,要用webkit内核浏览器才能看到效果.Chrome/Safari,这两个

CSS3制作各种形状图像

圆形-椭圆形-三角形-倒三角形=左三角形-右三角形-菱形-平行四边形- 星形-六角星形-五边形-六边形-八角形-心形-蛋形-无穷符号-消息提示框 不废话直接 html界面(亲测的) ------转自百度经验 http://jingyan.baidu.com/article/e52e36154226ef40c70c5148.html <!DOCTYPE html><html> <head> <meta charset="utf-8"> &l

css3制作旋转立方体相册

css3制作旋转立方体相册 首先让我们来看一下最终效果图: 当鼠标放在图片上是介个样子滴: 是不是觉得很好看?那接下来就一起制作吧! 我个人觉得编程,首先是思路,然后是代码,一起分析一下这个效果的思路. 1.背景颜色,它属于一种渐变的背景色(当然这不是重点,可以根据自己的爱好进行设置): 2.我们可以观察一下他是有两个旋转的立方体,大立方体套小立方体: 3.点击图片的时候,外部大立方体向外延伸. 有了这个大体的思路我们就可以开始敲代码了. 1.新建文件夹 将各个不同类型的代码进行归类是很有必要的

CSS3制作动画的三个属性

CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation:我们一起学习完了Transform和Transition,让我们对元素实现了一些基本的动画效果,这些我想足以让大家激动了一阵子,今天我们趁着这个热劲继续第三个动画属性Animation的学习,单从Animation字面上的意思,我们就知道是“动画”的意思.但CSS3中的Animation与HTML5中的Canvas绘制动画又不同,Animation只应用在页面上已存在的DOM元素上,而且他跟Fl

纯css3制作写轮眼开眼及进化过程

原文:纯css3制作写轮眼开眼及进化过程 今天是火影忍者(漫画)宣告完结的日子,也是我首发的第一个随笔.看过火影的朋友都知道,写轮眼是什么,这里就不多说了.下面就直接展示整个效果,上张图,先睹为快: 目前已经测试 IE10.Firefox浏览器.Chrome浏览器.Opera浏览器.360浏览器(两种模式)兼容已通过. 温馨提示:以上浏览器版本号均最新的:动画过程中每个阶段大约会停留5秒钟,希望你不会中幻术^_^. 在线演示 源码下载 HTML代码: 1 <div class="conta