今天我们接着一起来看CSS3动画属性中的一个属性Transition 。
W3C 标准中对css3的transition 这是样描述的:“css 的transition 允许css 的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS 的属性值。” 下面我们同样从其最语法和属性值开始一步一步来学习transition 的具体使用 语法:
1 transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [, [<'transition-property'> || <'transition-duration'> ||
<'transition-timing-function'> || <'transition-delay'>]]*
transition 主要包含四个属性值:执行变换的属性:transition-property,变换延续的时间:transition-duration,在延续时间 段,变换的速率变化
transition-timing-function,变换延迟时间transition-delay 。下面分别来看这四个属性值
一、transition-property:
语法:
1 t ransition-property : none | all | [
1、color: 通过红、绿、蓝和透明度组件变换(每个数值处理)如:
background-color,border-color,color,outline-color 等css 属性;
2、 length: 真实的数字 如:word-spacing,width,vertical-
align,top,right,bottom,left,padding,outline-width,margin,min-width,mi n-
height,max-width,max-height,line-height,height,border-width,border- spacing,background-position 等属性;
3、percentage:真实的数字 如:
word-spacing,width,vertical-align,top,right,bottom,left,min-width,min - height,max-width,max-height,line-height,height,background-position 等属性;
4、integer离散步骤(整个数字),在真实的数字空间,以及使用floor()转换为整数时发生如:outline-offset,z-index等属性;
5、number真实的(浮点型)数值,如:zoom,opacity,font-weight,等属性;
6、transform list:详情请参阅:《CSS3 Transform》
7、rectangle:通过x, y, width 和 height(转为数值)变换,如:crop
8、visibility: 离散步骤,在0到1数字范围之内,0表示“隐藏”,1表示完全“显示”,如:visibility
9、shadow: 作用于color, x, y 和 blur(模糊)属性,如:text-shadow
10、gradient: 通过每次停止时的位置和颜色进行变化。它们必须有相同的类型(放射状的或是线性的)和相同的停止数值以便执行动画,如:background-image
11、paint server (SVG): 只支持下面的情况:从gradient到gradient以及color到color,然后工作与上面类似
12、space-separated list of above:如果列表有相同的项目数值,则列表每一项按照上面的规则进行变化,否则无变化
13、a shorthand property: 如果缩写的所有部分都可以实现动画,则会像所有单个属性变化一样变化
具体什么css属性可以实现transition效果,在W3C官网中列出了所有可以实现transition效果的CSS属性值以及值的类型,大家可以点这里了解详情。这里需要提醒一点是,并不是什么属性改变都为触发transition动作效果,比如页面的自适应宽度,当浏览器改变宽度时,并不会触发transition的效果。但上述表格所示的属性类型改变都会触发一个transition动作效果。
二、transition-duration:
语法:
1 t ransition-duration :
transition-duration是用来指定元素转换过程的持续时间,取值:
三、transition-timing-function:
语法:
1 transition-timing-function : ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(
取值:
transition-timing-function 的值允许你根据时间的推进去改变属性值的变换速率,transition-timing-function 有6个可能值:
1、ease :(逐渐变慢)默认值,ease 函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0).
2、linear :(匀速),linear 函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0).
3、ease-in :(加速),ease-in 函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0).
4、ease-out :(减速),ease-out 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0).
5、ease-in-out :(加速然后减速),ease-in-out 函数等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
6、cubic-bezier :(该值允许你去自定义一个时间曲线), 特定的cubic-bezier 曲线。 (x1, y1, x2, y2)四个值特定于曲线上点P1和点P2。所有值需在[0, 1]区域内,否则无效。
其是cubic-bezier 为通过贝赛尔曲线来计算“转换”过程中的属性值,如下曲线所示,通过改变P1(x1, y1)和P2(x2, y2)的坐标可以改变整个过程的Output Percentage 。初始默认值为default.
其他几个属性的示意图:
四、transition-delay:
语法:
1 t ransition-delay :
transition- delay是用来指定一个动画开始执行的时间,也就是说当改变元素属性值后多长时间开始执行transition效果,其取值:
有时我们不只改变一个css效果的属性,而是想改变两个或者多个css属性的transition效果,那么我们只要把几个transition的声明串在一起,用逗号(“,”)隔开,然后各自可以有各自不同的延续时间和其时间的速率变换方
式。但需要值得注意的一点:transition-delay 与transition-duration 的值都是时间,所以要区分它们在连写中 的位置,一般浏览器会根据先后顺序决定,第一个可以解析为时间的怭值为transition-duration 第二个为transition- delay 。如:
1 2 3 4 5 6 a {
-moz-transition: background 0.5s ease-in,color 0.3s ease-out; -webkit-transition: background 0.5s ease-in,color 0.3s ease-out; -o-transition: background 0.5s ease-in,color 0.3s ease-out; transition: background 0.5s ease-in,color 0.3s ease-out;
}
如果你想给元素执行所有transition 效果的属性,那么我们还可以利用all 属性值来操作,此时他们共享同样的延续时间以及速率变换方式,如:
1 2 3 4 5 6 a {
-moz-transition: all 0.5s ease-in;
-webkit-transition: all 0.5s ease-in;
-o-transition: all 0.5s ease-in;
transition: all 0.5s ease-in;
}
综合上述我们可以给transition 一个速记法:transition:
相对应的一个示例代码:
1 2 3 4 5 6 p {
-webkit-transition: all .5s ease-in-out 1s;
-o-transition: all .5s ease-in-out 1s;
-moz-transition: all .5s ease-in-out 1s;
transition: all .5s ease-in-out 1s;
}
浏览器的兼容性:
因为transition最早是有由webkit内核浏览器提出来的,mozilla和opera 都是最近版本才支持这个属性,而我们的大众型浏览器IE全家都是不支持,另外由于各大现代浏览器Firefox,Safari,Chrome,Opera都还不支持W3C的标准写法,所以在应用 transition时我们有必要加上各自的前缀,最好在放上我们W3C 的标准写法,这样标准的会覆盖前面的写法,只要浏览器支持我们的 transition 属性,那么这种效果就会自动加上去:
//Mozilla内核
-moz-transition : [<'transition-property'> ||
<'transition-duration'> || <'transition-timing-function'> ||
<'transition-delay'> [, [<'transition-property'> ||
<'transition-duration'> || <'transition-timing-function'> ||
<'transition-delay'>]]*
//Webkit内核
-webkit-transition : [<'transition-property'> ||
<'transition-duration'> || <'transition-timing-function'> ||
<'transition-delay'> [, [<'transition-property'> ||
<'transition-duration'> || <'transition-timing-function'> ||
<'transition-delay'>]]*
//Opera
-o-transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [,
[<'transition-property'> || <'transition-duration'> ||
<'transition-timing-function'> || <'transition-delay'>]]*
//W3C 标准
transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [,
[<'transition-property'> || <'transition-duration'> ||
<'transition-timing-function'> || <'transition-delay'>]]*
通过上面,我想大家对CSS3的Transition属性的使用有一定的概念存在了,下面为了加强大家在这方面的使用,我们一起来看下面的DEMO。我们通过实践来巩固前面的理论知识,也通过实践来加强transition的记忆。
DEMO一:
DEMO 一我们主要是在一个div 中放置了几个小块,分别是对应了
transition-timing-function 中的几种类型,我们在div 的hover 状态下,改变其部分属性,从而达到一种动画效果。我们也可以使用jq 来点击一个按钮,触发这个div (说简单点就是通过按钮的点击事件给这个div 加上一 个class ,让其子元素都触发相对应的transition 动画效果),为了让大家能更好的学习和理解,我把相应的代码贴在这里,感兴趣的朋友就跟着做 一下吧,也可以直接把代码复制到你本地页面运行查看效果。
Html Code:
1 2 3 4 5 6 7 8 9 click
CSS Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #timings-demo {
border: 1px solid #ccc;
padding: 10px;
height: 400px;
width: 400px;
}
.demo-box {
width: 100px;
height: 50px;
text-align: center;
line-height: 50px;
text-align: center;
color: #fff;
background: #96c;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: inset 0 0 5px rgba(102, 153, 0,0.5);
-webkit-box-shadow: inset 0 0 5px rgba(102, 153, 0,0.5); box-shadow: inset 0 0 5px rgba(102, 153, 0,0.5);
margin-bottom: 10px;
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 }
//ease 效果:
#ease {
-moz-transition: all 5s ease 0.3s;
-webkit-transition: all 5s ease 0.3s;
-o-transition: all 5s ease 0.3s;
transition: all 5s ease 0.3s;
background: #f36;
}
//ease-in 效果:
#ease-in {
-moz-transition: all 3s ease-in 0.5s;
-webkit-transition: all 3s ease-in 0.5s;
-o-transition: all 3s ease-in 0.5s;
transition: all 3s ease-in 0.5s;
background: #369;
}
//ease-out 效果:
#ease-out {
-moz-transition: all 5s ease-out 0s;
-webkit-transition: all 5s ease-out 0s;
-o-transition: all 5s ease-out 0s;
transition: all 5s ease-out 0s;
background: #636;
}
//ease-in-out 效果:
#ease-in-out {
-moz-transition: all 1s ease-in-out 2s;
-webkit-transition: all 1s ease-in-out 2s;
-o-transition: all 1s ease-in-out 2s;
transition: all 1s ease-in-out 2s;
background: #3e6;
}
//linear 效果:
#linear {
-moz-transition: all 6s linear 0s;
-webkit-transition: all 6s linear 0s;
-o-transition: all 6s linear 0s;
transition: all 6s linear 0s;
background: #999;
}
//cubic-bezier 效果:
#cubic-bezier {
-moz-transition: all 4s cubic-bezier 1s;
39 40 41 42 43 44 45 46 47 48 49 5
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
-webkit-transition: all 4s cubic-bezier 1s;
-o-transition: all 4s cubic-bezier 1s;
transition: all 4s cubic-bezier 1s;
background: #6d6;
}
//hover 状态下或单击click 按钮后demo-box 产生属性变化
#timings-demo.timings-demo-hover .demo-box,
#timings-demo:hover .demo-box {
-moz-transform: rotate(360deg) scale(1.2);
-webkit-transform: rotate(360deg) scale(1.2);
-o-transform: rotate(360deg) scale(1.2);
transform: rotate(360deg) scale(1.2);
background: #369;
border: 1px solid rgba(255,230,255,08);
-moz-border-radius: 25px;
-webkit-border-radius: 25px;
border-radius: 25px;
margin-left: 280px;
height: 30px;
line-height: 30px;
margin-bottom: 15px;
}
1 6
2 6
3 6
4 6
5
6 6 6
7 6
8 6
9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2
3
8
4
8
5
8
6
8
7
8
8
使用单击事件给dimings-demo 加上一个timings-demo-hover 的class 名,使用demo-bxo 产生属性变化
1 2 3 4 5 6 7 8 $(document).ready(function(){
$("#timings-demo-btn").toggle(
function(){
$(this).next("div#timings-demo").addClass("timings-demo-hov er");
},function(){
$(this).next("div#timings-demo").removeClass("timings-demo-hover");
});
});
我们来看看其效果图
未改变属性效果
正在变换中
执行完动画后的最终效果
上图是鼠标移动到#timings-demo的div产生的效果变换示意图,你单击“click”按钮同样会产生上面的一个动画效应,为了节约空间,这里不在贴出示意图。
DEMO 二:
我 们在来看另外一个DEMO ,这个示例是通过CSS3的transition 模仿制作jQuery 的slideshow 效果,当然这种效果跟js 和jQ 制作 出来的是没得比,但有时还是可以用一用的,以前腾讯就使用过这样的一个效果。我们这个DEMO 实现的效果原理跟上一个DEMO 极其相似,这里我们是通过 select 的change 事件来触slideshow 的CSS3属性变化,这里应用到一部分jQuery ,主要是制作数字切换和前一张下一张的按钮,以 及select 的change 事件。下面我把代码贴出以供大家参考,如果你跟着做了的话,你会觉得CSS3的transition 真的是魅力是无穷的。
Html Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40 41 42 43 44
CSS Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #demoSliderContainer {
background: #000;
-moz-box-shadow: 1px 1px 5px #000;
-webkit-box-shadow: 1px 1px 5px #000;
box-shadow: 1px 1px 5px #000;
padding: 0;
overflow: auto;
margin: 10px auto;
width: 560px;
}
#demoSlider {
border: 1px solid #000;
border-width: 5px 5px 0;
height: 220px;
margin: 0 auto;
width: 550px;
overflow: hidden;
position: relative;
}
.slide-images .slide-image {
position: absolute;
}
.slide-images .slide-image img {
z-index: 2;
}
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 .slide-images .slide-image span {
background: rgba(0,0,0,0.3);
-moz-border-radius: 5px 0 0 0;
-webkit-border-radius: 5px 0 0 0;
border-radius: 5px 0 0 0;
bottom: 4px;
color: rgba(255,255,255,0.8);
font-size: 14px;
font-weight: bold;
padding: 5px 10px;
position: absolute;
right: 0;
z-index: 3;
}
.slide-images .slide-image.current img {
z-index: 12;
}
.slide-images .slide-image.current span {
z-index: 13;
}
#demoSliderContainer .options {
padding: 3px 10px;
text-align: center;
}
#demoSliderContainer .options a {
color: #91BECC;
font-family: Georgia,Serif;
font-size: 12px;
font-weight: bold;
text-decoration: none;
}
#demoSliderContainer .options a:hover {
color: #D3E5EB;
}
#demoSliderContainer .slide-pager a {
-moz-transition-duration: 0.5s;
-webkit-transition-duration: 0.5s;
-o-transition-duration: 0.5s;
transition-duration: 0.5s;
}
#demoSliderContainer .slide-pager a.current { background-color: #91BECC;
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 border-radius: 5px 5px 5px 5px;
color: black;
padding: 0 4px;
}
#demoSliderContainer .options .prevSlide {
float: left;
}
#demoSliderContainer .options .nextSlide {
float: right;
}
/*transition effect*/
.slide-images .slide-image,
.slide-images .slide-image img {
-moz-transition-duration: 1.5s;
-webkit-transition-duration: 1.5s;
-otransition-duration: 1.5s;
transition-duration: 1.5s;
}
.slide-images.transition-opacity .slide-image {
opacity: 0;
width: 0;
}
.slide-images.transition-opacity .slide-image.current {
opacity: 1;
width: 550px;
}
.slide-images.transition-left .slide-image {
left: -550px;
opacity: 0;
}
.slide-images.transition-left .slide-image.current {
left: 0;
opacity: 1;
}
.slide-images.transition-right .slide-image {
right: -550px;
opacity: 0;
}
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 .slide-images.transition-right .slide-image.current {
right: 0;
opacity: 1;
}
.slide-images.transition-top .slide-image {
opacity: 0;
top: -220px;
}
.slide-images.transition-top .slide-image.current {
opacity: 1;
top: 0;
}
.slide-images.transition-bottom .slide-image {
opacity: 0;
bottom: -220px;
}
.slide-images.transition-bottom .slide-image.current {
opacity: 1;
bottom: 0;
}
.slide-images.transition-cornerzoom .slide-image {
opacity: 0;
}
.slide-images.transition-cornerzoom .slide-image.current { opacity: 1;
}
.slide-images.transition-cornerzoom .slide-image img {
width: 0;
}
.slide-images.transition-cornerzoom .slide-image.current img { width: 550px;
}
.slide-images.transition-zoom .slide-image {
opacity: 0;
}
.slide-images.transition-zoom .slide-image.current {
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 opacity: 1;
}
.slide-images.transition-zoom .slide-image img {
left: -275px;
position: relative;
top: -110px;
width: 1100px;
}
.slide-images.transition-zoom .slide-image.current img { left: 0;
top: 0;
width: 550px;
}
.slide-images.transition-dezoom .slide-image {
-moz-box-shadow: 2px 2px 8px black;
-webkit-box-shadow: 2px 2px 8px black;
box-shadow: 2px 2px 8px black;
opacity: 0;
}
.slide-images.transition-dezoom .slide-image.current {
opacity: 1;
}
.slide-images.transition-dezoom .slide-image img {
left: 275px;
position: relative;
top: 110px;
width: 0;
}
.slide-images.transition-dezoom .slide-image.current img { left: 0;
top: 0;
width: 550px;
}
.slide-images.transition-rotate .slide-image {
opacity: 0;
}
.slide-images.transition-rotate .slide-image.current {
opacity: 1;
}
.slide-images.transition-rotate .slide-image img {
width: 550;
height: 220px;
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 position: relative;
left: -550px;
top: -220px;
}
.slide-images.transition-rotate .slide-image.current img { width: 550px;
height: 220px;
left: 0;
top: 0;
-moz-transform: rotate(1440deg);
-webkit-transform: rotate(1440deg);
-o-transform: rotate(1440deg);
transform: rotate(1440deg);
}
#options {
margin: 20px auto;
padding: 5px;
width: 550px;
}
jQuery Code:
$(document).ready(function(){
$(".slide-images").each(function(){
var slider = $(this);
var slides = $(".slide-image",slider);
var sliderPages = $(".slide-pager");
//Slide Navigation
var currentSlideNum = 0;
slides.removeClass("current");
slides.eq(currentSlideNum).addClass("current");
sliderPages.each(function(){
var pages = $("a",this);
pages.removeClass("current");
pages.eq(currentSlideNum).addClass("current");
});
var goToSlide = function(slideNum) {
slides.eq(currentSlideNum).removeClass("current");
slides.eq(slideNum).addClass("current");
sliderPages.each(function(){
var pages = $("a", this);
pages.eq(currentSlideNum).removeClass("current");
pages.eq(slideNum).addClass("current");
});
currentSlideNum = slideNum;
};
var nextSlide = function() {
var nextSlideNum = currentSlideNum + 1;
if(nextSlideNum >= slides.size())
nextSlideNum = 0;
goToSlide(nextSlideNum);
};
var prevSlide = function() {
var prevSlideNum = currentSlideNum - 1;
if(prevSlideNum < 0)
prevSlideNum = slides.size() - 1;
goToSlide(prevSlideNum);
};
//transition effects
var setTransitionEffect = function(transitionEffect) {
slider.attr("class","slide-images "+ transitionEffect); };
$("#transitionEffect").change(function(){
setTransitionEffect($(this).val());
}).change();
//Navigation binding
$(".prevSlide").click(prevSlide);
$(".nextSlide").click(nextSlide);
$(".slide-pager a").each(function(i){
if(i >= slides.size()) return false;
$(this).click(function(){
goToSlide(i);
});
CSS3关键帧动画 本文转载自创美优品,转载就保留此信息。我决定探索该地区的CSS3关键帧动画。的想法很简单-创造一种虚拟明信片。我住在巴黎,所以很明显我给你我的问候,从巴黎:)
下载源文件 (。psd文件) 明信片从巴黎的。zip 1.9MB CSS3的动画支持:Chrome浏览器2 +,Safari 4的+,火狐5 +,iOS的Safari浏览器3.2和 Android 2.1系统+(源碎杂志)。 我们将3个要素:云中的动画(有三个层次的云),旋转法尔灯和艾菲尔铁塔闪闪发光。 的HTML结构其实很简单:
我们将使用下面的图片(我将讨论一点点波光粼粼的效果),让我们先来完成的CSS样式表:
动画云
海文国际https://www.doczj.com/doc/7214271087.html, web前端培训教程:CSS3 的动画效果 本章主要探讨HTML5 中CSS3 的动画效果,可以通过类似Flash 那样的关键帧模式控制运行。 一.动画简介 CSS3 提供了类似Flash 关键帧控制的动画效果,通过animation 属性实现。那么之前的transition 属性只能通过指定属性的初始状态和结束状态来实现动画效果,有一定的局限性。 animation 实现动画效果主要由两个部分组成: 1.通过类似Flash 动画中的关键帧声明一个动画; 2.在animation 属性中调用关键帧声明的动画。 CSS3 提供的animation 是一个复合属性,它包含了很多子属性。如下表所示:
海文国际https://www.doczj.com/doc/7214271087.html, 除了这9 个属性之外,动画效果还有一个重要的属性,就是关键帧属性: @keyframes。 它的作用是声明一个动画,然后在animation 调用关键帧声明的动画。 //基本格式,“name”可自定义 @keyframes name { /*...*/ } 二.属性详解 在讲解动画属性之前,先创建一个基本的样式。 //一个div 元素
海文国际https://www.doczj.com/doc/7214271087.html, //设置CSS div { width: 200px; height: 200px; background-color: white; border: 1px solid green; } 1.@keyframes //创建动画的第一步,先声明一个动画关键帧。 @keyframesmyani { 0% { background-color: white; margin-left:0px; } 50% { background-color: black; margin-left:100px; } 100% { background-color: white; margin-left:0px;
10款让人惊叹的html5动画效果 这里介绍10款让人叹为观止的html5动画效果 1、15种html5+css3图片堆叠图片展示特效 这是一款html5和css3制作的图片堆叠图片展示特效,就像一幅扑克牌堆叠在一起,最开始只能看到一张,点击按钮后就会展开成几张,非常有意思。 2、html5 svg+css3制作图片边框运动动画效果
一款使用html5 svg技术制作的图片边框运动动画效果,鼠标移动到图片上时,便会有几条线绕着边框运动,共有4种不同的效果。建议使用Firefox或Chrome浏览器观看。 3、21种html5+css3鼠标悬停hover超链接导航条动画效果 利用css3 transition属性制作的21种不同的鼠标悬停效果。当鼠标hover或悬停在超链接上时,
会触发各种动画效果。每种动画效果都十分独特,可用于网站导航。 4、18种基于html5 svg和css3的神奇超链接动画效果 普通的超链接效果是鼠标放上去出现一条下划线,本插件异想天开的使用html5 svg和css3打造出18种很神奇的超链接动画效果。每种超链接动画效果都有它的独到之处。 5、html5+css3网格图片3d翻转Loading页面切换效果
这是一个图片html5和css3制作的3d翻转Loading页面切换效果。在页面上以网格的形式展示所有的页面缩略图,当点击了缩略图片后,图片进行3d翻转,然后加载相应的页面内容。 6、12种利用html5+css3打造的消息提示框效果 这是12种风格各异的弹出消息提示框效果,使用html5和css3 animation属性制作,有各种旋转、翻转、伸展特效。效果非常华丽。
总结+HTML5新增标签 目录: 1 2 3 4 5 6 7 8 分享2014-4-1 HTML5上课笔记
1)边框 ① border-colors 相关属性border-top-colors border-right-colors border-bottom-colors border-left-colors ② border-image : stretch 拉伸方式来填充边框背景图| repeat 平铺图片碰到边界时超出截断 | round 平铺,图片会工具边框的尺寸动态调整图片大小直至刚好铺满整个边框 ③ border-radius 相关属性border-radius: 1-4 length | % / 1 border-radius数值为合模型的一半就变成圆,记住:不是相对于合模型的width(如:965x1611),而是整个框才是 结果就显示的不是正圆,所以border-radius:300px; 才能显示正圆,加上border的值 '/'前面表示水平方向,后面表示垂直方向。每个方向都可以用1~4个值,缩写的规则遵循“左上开始,顺时针旋转/只能写一个 2)阴影 1.文本阴影 text-shadow(不需要判断浏览器) text-shadow:2px 3px 2px #000; 文字阴影的结构是按照以下顺序:X--偏移,Y--偏移,模糊,和颜色; text-shadow:-2px -3px 2px rgba(0, 118, 160, .25); 设置为负值,X -偏移阴影转移到左侧。设置为负值偏移Y -转移阴影顶端。颜色可以用RGBA值。 text-shadow:0px 1px 0px #fff,0px -p1x 0px #000; 文字阴影的列表(以逗号分隔),1px的顶部和底部1px的阴影。 text-shadow:水平偏移量垂直偏移量阴影模糊值颜色, 水平偏移量垂直偏移量阴影模糊值颜色;(多个阴影用,隔开) eg: .con2 p { font-size: 90px; color:#fff;
CSS3添加了几个动画效果的属性,通过设置这些属性,可以做出一些简单 的动画效果而不需要再去借助 JavaScript 。CSS3动画的属性主要分为三类: transform 、 transition 以及 animation 。 transform rotate 设置元素顺时针旋转的角度,用法是: transform: rotate(x); 参数x 必须是以deg 结尾的角度数或0,可为负数表示反向 scale 设置元素放大或缩小的倍数,用法包括: transform: skewX(a); 元素 x 方向逆时针倾斜角度 a ,y 方向不变 transform: scale(a); 元素x 和y 方向均缩放a 倍 transform: scale(a, b); transform: scaleX(a); transform: scaleY(b); 元素x 方向缩放 元素x 方向缩放 元素y 方向缩放 a 倍,y 方向缩放b 倍 a 倍,y 方向不变 b 倍,x 方向不变 translate 设置元素的位移,用法为: transform: translate(a, b); transform: translateX(a); transform: translateY(b); 元素x 方向位移a ,y 方向位移b 元素x 方向位移a ,y 方向不变 元素y 方向位移b ,x 方向不变 skew 设置元素倾斜的角度,用法包括: transform: skew(a, b); 斜角度b 元素x 方向逆时针倾斜角度 a ,y 方向顺时针倾
transform: skewY(b); 元素y 方向顺时针倾斜角度b ,想方向不变 以上的参数均必须是以deg 结尾的角度数或0,可为负数表示反向。matrix 设置元素的变形矩阵,因为矩阵变形过于复杂,暂略。 origin 设置元素的悬挂点,用法包括:transform-origin: a b; 元素的悬挂点为(a, b) 元素的悬挂点即为它旋转和倾斜时的中心点。取值中的a、b 可以是长度值、以%结尾的百分比或者left 、top 、right 、bottom 四个值。 transition transition-property 指定transition效果作用的CSS属性,其值是CSS属性名。 transition-duration 动画效果持续的时间,其值为以s结尾的秒数。 transition-timing-function 指定元素状态的变化速率函数,其取值基于贝赛尔曲线函数,详情如下所示:transition-delay 动画效果推迟开始执行的时间,其值为以s结尾的秒数。 CSS3动画的生命周期如下图所示,从中可以清楚的看出duration和delay之间的关系: animation CSS3中真正的动画属性是animation,而前面的transform 和transition都只是对DOM元素的变形或者是状态的过渡。实际上,CSS3所支持的动画效果 只是填充动画,也就是说先设定整个动画生命周期中的几个关键状态 (key frame,关键帧),然后动画将自行计算并模拟关键帧之间的过渡。那么在
html5教程:8个炫酷CSS动画及源码分享在现代网页中,我们已经越来越习惯使用大量的CSS3元素,而现在的浏览器也基本都支持CSS3,所以很多时候我们不妨思考一下是否可以用纯CSS3制作一些有趣或者实用的网页。本文要分享8个超炫酷的纯CSS3动画,有几个非常经典,比如大象走路的那个,如果你对CSS3感兴趣,赶紧来看看吧。 1、纯CSS3实现大象走路动画之前我们分享过一款纯CSS3人物行走动画,效果相当震撼。这一次要给大家介绍的是一款纯CSS3实现的大象走路动画,大象走路时的形态表现的十分逼真,你可能不会想到,这么给力的动画居然是用纯CSS3实现的,很可爱的大象,下载源码自己去研究吧。 2、纯CSS3实现苹果设备 iPhone iPad iMac及iWatch今天我们又要用CSS3来绘制一些有趣的东西,这次要绘制的是全套的苹果设备,包括iPhone、iPad、iMac及iWatch,配合各自的界面壁纸,显得非常逼真,同时跟现实中的设备一样,屏幕同样具有切换的效果,只不过这个是定时切换,并不能滑动切换,有兴趣的同学可以自行实现一下。 3、纯CSS3实现变形金刚组装动画特效今天要分享的依然是一款用纯CSS3实现的动画,是一个变形金刚组装动画特效,这种组装动画将人物的各部位按某种顺序组合起来,显得非常酷。 4、纯CSS3 3D按钮按钮酷似牛奶般剔透CSS3按钮一般都可以设计的非常漂亮,利用投影、渐变等CSS3属性特效可以把按钮渲染的十分动感。今天分享的这款CSS3按钮外观非常特别,它看上去酷似晶莹剔透的牛奶,而且在点击按钮时出现3D效果的动画,按钮按下时,按钮会轻轻的弹动一下,非常逼真。 5、CSS3音量调节旋转按钮之前我们分享过很多可以调节音量的HTML5视频播放器,大部分音量调节按钮都比较普通,没有什么特色。今天要分享一款基于CSS3的音量调节旋转按钮,只要按住鼠标即可旋转按钮来调节音量。这是一款很有特色旋转按钮。
css3实现动画效果常用方法 早期在web中要实现动画效果,都是依赖于JavaScript或flash来完成,但在css3中新增加了一个新的模块transition,它可以通过一些简单的css事件来触发元素的外观变化,让效果显得更加细腻。简单来说,就是通过鼠标的单击、获得焦点、被点击、或对元素任何改变中触发,并平滑地以动画效果改变css属性值 在css中创建简单的过渡效果可以从以下几个步骤来实现: (1)在默认样式中声明元素的初始状态样式 (2)声明过渡元素最终状态样式,比如悬浮状态 (3)在默认样式中通过添加过渡函数,添加一些不同的样式 1、css变形属性 transform属性的基本语法如下: translate(): 移动元素,可以根据X轴和Y轴坐标重新定位元素位置。在此基础上有两个扩展函数translateX()和translateY(); scale():缩小或方法元素,可以使用元素尺寸发生变化,在此基础上用两个扩展函数scaleX()和scaleY(); rotate(): 旋转元素,其参数值为旋转的角度值(360deg) skwe();让元素倾斜。在此基础上有两个扩展函数skewX()和skewY() matrix():定义矩阵变形,基于X轴和Y轴 2、过渡属性transition 过渡属性是一个复合属性,主要包括以下几个属性 transition-property:指定过渡或动态模拟的css属性(CSS属性名称) transition-duration:指定完成过渡所需的时间(持续时间) transition-timing-function:指定过渡函数(缓动函数) transition-delay:指定开始出现的延迟时间(改变元素属性值后多长时间开始执行) transition的优点在于简单易用,但是它有几个很大的局限。 (1)transition需要事件触发,所以没法在网页加载时自动发生。 (2)transition是一次性的,不能重复发生,除非一再触发。 (3)transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。 (4)一条transition规则,只能定义一个属性的变化,不能涉及多个属性。 3、animation动画 animation-name属性主要用来调用@keyframes定义好的动画
css3动画效果总结 scale(a); 元素x和y方向均缩放a倍transform: scale(a, b); 元素x方向缩放a倍,y方向缩放b倍transform: scaleX(a); 元素x方向缩放a倍,y方向不变transform: scaleY(b); 元素y方向缩放b倍,x方向不变translate设置元素的位移,用法为:transform: translate(a, b); 元素x方向 位移a,y方向位移btransform: translateX(a); 元素x方向位移a,y方向不变transform: translateY(b); 元素y方向位移b,x方向不变skew设置元素倾斜的角度,用法包括:transform: skew(a, b); 元素x方向逆时针倾斜角度a,y方向顺时针倾斜角度btransform: skewX(a); 元素x方向逆时针倾斜角度a,y方向不变transform: skewY(b); 元素y方向顺时针倾斜角度b,想方向不变以上的参数均必须是以deg结尾的角度数或0,可为负数表示反向。matrix设置元素的变形矩阵,因为矩阵变形过于复杂,暂略。origin设置元素的悬挂点,用法包括:transform-origin: a b; 元素的悬挂点为(a, b)元素的悬挂点即为它旋转和倾斜时的中心点。取值中的a、b可以是长度值、以%结尾的百分比或者left、top、right、bottom四个值。transitiontransition-property指定transition效果作用的CSS属性,其值是CSS属性名。transition-duration动画效果持续的时间,其值为以s结尾的秒数。transition-timing-function指定元素状态的变化速率
CSS3中的Transition 属性详解 W3C 标准中对CSS3的transition 这是样描述的:"CSS 的transition 允许CSS 的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS 的属性值。" 下面我们从最简单的语法和属性值开始一步一步来学习transition 的具体使用: 语法: 1 2 3 transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [, [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'>]]* transition 主要包含四个属性值:执行变换的属性:transition-property ;变换延续的时间:transition- duration ;在延续时间段,变换的速率变化transition-timing-function ;变换延迟时间transition- delay 。下面分别来看这四个属性值: 一、transition-property : 语法:.transition-property : none | all | [
CSS3 skew倾斜、rotate旋转动画 css3出现之前,我们实现一个对象的一组连续动画需要通过JavaScript或Jquery编写,脚本代码较为复杂; 若需要实现倾斜、旋转之类的动画难度将更高(我还没试过用JavaScript或Jquery如何实现),而且即使能实现估计花的时间代价及维护难度是很大的,很多时候只能依靠画图工具制作此类动画文件; 有时候在想如果不用脚本语言,也不用画图工作制作动画文件,就能在网页上实现倾斜、旋转之类的动画效果多好。 最近挤出一些业余时间学习CSS3,其中就包含很多动画示例,花了点时间学习和整理 今天分享使用html+css3实现skew倾斜、rotate旋转动画,我们先看最终效果图(我这里为了演示效果,就用QQ屏幕截成多张图片,然后制作成gif动画给大家简单展示下,效果不好请大家多多包涵)
图1 具体步骤如下: 1、放置两个div,一个作为容器(图1中绿色背景部分id="warp"),另一个作为动画元素(图1中黄色背景部分 id="box") HTML代码: CSS代码(设置容器及动画元素默认样式):
注意:#box{position: relative;}是为该元素接下来做动画做准备,因为动画过程中需要改变其位置,故这里使用相对定位 上述代码为基本的html css,大家应该没问题吧 此时效果如下: 2、使用CSS3 @keyframes自定义动画 CSS代码:
height: 40px; } 20% { top: 0; left: 0; transform: skewX(50deg); width: 60px; height: 20px; background: red; } 22% { top: 0; left: 0; transform: skewX(0deg); width: 40px; height: 40px; } 30% { top: 0; left: 0; transform: skewX(0deg); width: 320px; height: 40px; } 40% { top: 0; left: 280px; transform: skewX(0deg); width: 40px; height: 40px; background: green; } 50% { top: 0; left: 280px; transform: skewX(0deg); width: 20px; height: 320px; } 55% { top: 280px; left: 280px; transform: skewX(0deg);
超级惊艳 10款HTML5动画特效推荐 2014-07-04 09:52 超人 html5tricks 字号:T | T 今天我们要来推荐 10 款超级惊艳的 HTML5 动画特效,有一些是基于 CSS3 和 jQuery 的,比较实用,特别是前几个 HTML5 动画,简直酷毙了,现在将它们分享给大家,也许你能用到这些 HTML5 动画和 jQuery 应用。 AD:2014WOT全球软件技术峰会北京站课程视频发布 11月21日-22日与WOT技术大会相约深圳现在抢票 今天我们要来推荐 10 款超级惊艳的 HTML5 动画特效,有一些是基于 CSS3 和 jQuery 的,比较实用,特别是前几个 HTML5 动画,简直酷毙了,现在将它们分享给大家,也许你能用到这些 HTML5 动画和 jQuery 应用。 1、HTML5 Canvas 发光 Loading 动画 之前我们分享过很多基于 CSS3 的 Loading 动画效果,相信大家都很喜欢。今天我们要来分享一款基于 HTML5 Canvas 的发光Loading 加载动画特效。Loading 旋转图标是在 canvas 画布上绘制的,整个 loading 动画是发光 3D 的视觉效果,HTML5 非常强大。 在线演示源码下载 2、jQuery 球状放大镜特效插件
今天我们要来分享一款基于 jQuery 的放大镜特效插件,和其他放大镜不同的是,这款 jQuery 放大镜插件是球状的,看上去有 3D 的视觉效果。当你把鼠标滑过页面上的文字时,即会出现很酷的球状放大镜,来放大当前区域的文字。并且以球心为中心点向外文字逐渐变小,这就产生了立体感。 在线演示源码下载 3、HTML5 Canvas 粒子模拟效果 这是一款利用 HTML5 Canvas 模拟出来的 30000 个粒子动画,当你用鼠标在 canvas 画布上移动时,鼠标周围的一些粒子就会跟着你移动,并形成一定的图案,就像你在玩沙画一样,效果非常不错。这里,我们应用了一些 HTML5 的特性,让这个粒子动画显得相当动感。
CSS动画实例:10个有关五角星的动画特效 设页面中有
,若定义. star的样式规则如下: .star { position: absolute; display: block; width:0px; height:0px; left:calc(50% - 50px); top:calc(50% - 23px); border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom:35px solid red; transform:rotate(35deg); } .star:before { content: ''; position: absolute; width: 0px; height: 0px; top: -22.5px; left: -31.25px; border-left: 15px solid transparent; border-right: 15px solid transparent; border-bottom: 40px solid red; transform: rotate(-35deg); } .star:after { content: ''; position: absolute; width: 0px; height: 0px; top: 1.5px; left: -52.5px; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 35px solid red; transform:rotate(-70deg); }CSS动画实例:一颗躁动的心 在页面中放置一个类名为container的层作为盛放心心的容器,在该层中再定义一个名为heart的子层,HTML代码描述如下:
今天我们接着一起来看CSS3动画属性中的一个属性Transition 。 W3C 标准中对css3的transition 这是样描述的:“css 的transition 允许css 的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS 的属性值。” 下面我们同样从其最语法和属性值开始一步一步来学习transition 的具体使用 语法: 1 transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [, [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'>]]* transition 主要包含四个属性值:执行变换的属性:transition-property,变换延续的时间:transition-duration,在延续时间 段,变换的速率变化 transition-timing-function,变换延迟时间transition-delay 。下面分别来看这四个属性值 一、transition-property: 语法: 1 t ransition-property : none | all | [
CSS3 动画属性(Animation) 属性描述CSS @keyframes规定动画。 3 3 animation所有动画属性的简写属性,除了animation-play-state 属 性。 animation-name规定@keyframes 动画的名称。 3 animation-duration规定动画完成一个周期所花费的秒或毫秒。 3 animation-timing-function规定动画的速度曲线。 3 animation-delay规定动画何时开始。 3 animation-iteration-count规定动画被播放的次数。 3 animation-direction规定动画是否在下一周期逆向地播放。 3 animation-play-state规定动画是否正在运行或暂停。 3 animation-fill-mode规定对象动画时间之外的状态。 3 CSS 背景属性(Background) 属性描述CSS background在一个声明中设置所有的背景属性。 1 background-attachment设置背景图像是否固定或者随着页面的其余部分滚动。 1 background-color设置元素的背景颜色。 1 background-image设置元素的背景图像。 1 background-position设置背景图像的开始位置。 1 background-repeat设置是否及如何重复背景图像。 1 background-clip规定背景的绘制区域。 3 background-origin规定背景图片的定位区域。 3 background-size规定背景图片的尺寸。 3 CSS 边框属性(Border 和Outline)
CSS3 transition实现超酷图片墙动画效果 有了CSS3,实现效果就是这么简单。加群四一八加上三五五最后五三一了解更多web实战知识。 功能介绍web前端的技术学习(html,css,js)每天进步一小步,人生进步一大步! 工具/原料 电脑 坚持和耐心 方法/步骤 1 一、前面的感慨以前也陆陆续续试过CSS3的一些特性,文字投影,多边框等。但都是试试而已,知道有这么回事。今天,见到了一个新玩意,transition,认认真真的试了一下,经过,我懵了,我呆了,我傻了,半天说不出话来,这…这…unbelievable,amazing,太神奇了,太不可思议了,几行简单的CSS,如此炫酷的动画效果,flash都不及的动画效果,我真是难以表达我的心情。 下面由浅入深,使用纯CSS,一步一步实现图片墙动画效果。这里,必须要先说明一下:对于对于此transition效果,IE6,IE7,IE8浏览器可以回家过元旦节了,这里没有它们的事情,Firefox3虽然平时表现不错,这里也没有它的事情。这个效果最拿手的是chrome2浏览器,Safari4,也就是webkit家族,这里Firefox3.5勉强凑合,有盒阴影和旋转效果,但是没有动画。所以,下文陆续提供的demo页面仅适用于chrome浏览器和Safari浏览器,部分适用于Firefox3.5+,IE纯粹的观众。 2 二、基础练习–实现旋转与盒投影效果在CSS3中,实现旋转效果需要用到transform属性中的rotate属性;实现盒阴影效果需要使用box-shadow属性。具体参见下面的示例代码。-webkit-transform:rotate(10deg); -moz-transform:rotate(10deg); transform:rotate(10deg); -webkit-box-shadow:2px 2px 3px rgba(135, 139, 144, 0.4); -moz-box-shadow:2px 2px 3px rgba(135, 139, 144, 0.4); box-shadow:2px 2px 3px rgba(135, 139, 144, 0.4); 上面代码部分,首先应该知道的是webkit表示webkit核心的浏览器,是其私有属性,作用
CSS动画实例:六边形 设页面中有
,若定义. hexagon的样式规则如下:.hexagon { top:50px; left:50px; position: absolute; width: 40px; height: 23px; background-color: #f0f; } .hexagon::before { content: ""; position: absolute; top: -11.5px; left: 0; width: 0; height: 0; border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 11.5px solid #f0f; } .hexagon::after { content: ""; position: absolute; top: 23px; left: 0; width: 0; height: 0; border-left: 20px solid transparent; border-right: 20px solid transparent; border-top: 11.5px solid #f0f; } 可在页面中绘制出如图1所示的六边形。 图1 六边形下面将多个如图1所示的六边形作为基本动画元素,为它们定义关键帧,使这些六边形产生动画效果。 1.淡入淡出的六边形 在页面中放置7个六边形,这7个六边形按上下两行各两个,中间一行三个的方式镶嵌在一起,定义关键帧,使得这7个六边形依次淡入淡出。 编写的HTML文件如下。