栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Html/CSS > CSS教程

2018-05-26 CSS3实现动画加载效果

CSS教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2018-05-26 CSS3实现动画加载效果

第六篇博客-加载动画.png

最近在系统的学习CSS3方面的知识,以前经常在编程使用到部分CSS3属性,但没有想到还有许多功能强大的功能都是在CSS3当中提出的。对于学习前端的同学们,一定要熟悉掌握CSS3的相关知识,可以极大的提高开发效率。

下面是介绍在项目中使用到的CSS3技术:

一、自定义字体  @font-face

提问:为什么要使用自定义字体?
回答:在CSS3之前,网页设计师不得不使用用户计算机上已经安装的字体。使用CSS3,网页设计师就可以设置网页使用大众喜欢的字体,并且不再受用户本地计算机是否存在该字体的影响。字体资源可以作为图片资源一样,放在服务器上,它会自动下载给需要的用户。

1.1 现有的字体文件有?
woff文件、ttf文件、svg文件、eot文件

1.2 @font-face使用:将字体下载到本地项目中,路径的设置跟图片类似
自定义字体名,并引入字体资源

@font-face{    font-family: hwxk; 
    src:url(../fonts/hwxk.ttf);}

引用自定义字体

p{font-family:hwxk}

二、伪类:向某些选择器添加特殊的效果

2.1 child选择器
div:first-child:作为父元素的第一个div
div:last-child:作为父元素的最后一个div
div:nth-child():括号内可以是确切的值,也可以是表达式
例如:
div:nth-child(2):作为父元素的第二个div
div:nth-child(an+b):作为子元素位置是a倍数偏移量为b的所有div元素
div:nth-child(odd):作为子元素是奇数位置的所有div元素

:nth-last-child():括号内可以是确切的值,也可以是表达式
:nth-child()和:nth-last-child()的区别在于,前者从上到下查询,后者从下到上查询

2.2 type选择器
div:first-of-type:作为父元素的第一个类型为div的元素
div:last-of-type:作为父元素的最后一个类型为div的元素
div:nth-of-type():与nth-child()用法类似,但含义不同
div:nth-last-of-type():于nth-last-child()用法类似,但含有不同

三、圆角:border-radius

.box{    width: 200px;    height: 200px;    border-radius:100px;
    background: gold;
}

效果:


圆形.png

四、阴影:box-shadow

4.1 属性值
h-shadow:必需,水平阴影的位置。正值时表示向右偏移,负值时表示向左偏移。
v-shadow:必需,垂直阴影的位置。正值时表示向下偏移,负值时表示向上偏移。
blur:可选,模糊距离。
spread:可选,阴影的尺寸。
color:可选,阴影的颜色。
inset:可选,将外部阴影 (outset) 改为内部阴影。

4.2 实例
代码:

.box{    width: 200px;    height: 200px;    background: #e8e8e8;    box-shadow: 2px 2px 5px gold;
}

效果:


阴影.png

五、动画

5.1 创建动画@keyframes(还需要兼容各种浏览器)

@-moz-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}@-o-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}@-webkit-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}@-ms-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}@keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);}
}

5.2 使用动画animation
animation:所有动画属性的简写属性,除了 animation-play-state 属性。
animation-name:规定@keyframes 动画的名称。
animation-duration:规定动画完成一个周期所花费的秒或毫秒。默认是 0。
animation-timing-function:规定动画的速度曲线,默认是 "ease"。
animation-delay:规定动画何时开始,默认是 0。
animation-iteration-count:规定动画被播放的次数,默认是 1。
animation-direction:规定动画是否在下一周期逆向地播放,默认是 "normal"。
animation-play-state规定动画是否正在运行或暂停,默认是"running"。

-webkit-animation: anim 2s linear infinite;-moz-animation: anim 2s linear infinite;-ms-animation: anim 2s linear infinite;-o-animation: anim 2s linear infinite;animation: anim 2s linear infinite;

六、CSS3实例-加载效果

6.1 html代码

    加载中..
    
    

6.2 CSS3代码

*{    padding:0;    margin:0;    list-style-type: none;
}
@font-face{    font-family: hwxk; 
    src:url(../fonts/hwxk.ttf);}.loading{    width: 200px;    height: 200px;    margin: 100px auto;    border-radius: 50%;    font-size: 20px;    line-height: 200px;    position: relative;    text-align: center;    font-family: hwxk;
}.loading > div:nth-child(2),.loading > div:nth-child(3){    width: 200px;    height: 200px;    border-radius: 50%;    border:1px solid #ffffff;    box-shadow: 0px 0px 5px 0 gold;    position: absolute;    top:0;    -webkit-animation: anim 2s linear infinite;    -moz-animation: anim 2s linear infinite;    -ms-animation: anim 2s linear infinite;    -o-animation: anim 2s linear infinite;    animation: anim 2s linear infinite;
}.loading > div:nth-child(2){    border-color:#fff;    left:10px;    width:180px;
}.loading > div:nth-child(3){    border-color: gold;    left:0px;    width: 200px;    -webkit-animation-delay: 0.5s;    -moz-animation-delay: 0.5s;    -ms-animation-delay: 0.5s;    -o-animation-delay: 0.5s;    animation-delay: 0.5s;
}
@-moz-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}
@-o-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}
@-webkit-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}
@-ms-keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);
}
@keyframes anim{    from{transform: rotateY(0deg);}
    50% {transform: rotateY(180deg);}    to {transform: rotateY(360deg);}
}

6.3 效果
其最终效果下图所示,但是一个动态循环的效果,希望可以自己将代码复制到本地感受一下效果,然后学习一下代码。


加载动画.png



作者:瑾瑜爱上猫
链接:https://www.jianshu.com/p/6263bda5902d


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/242720.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号