CSS3变形与动画的相关属性
来源:互联网 发布:苹果5s2g网络怎么改4g 编辑:程序博客网 时间:2024/05/21 17:38
CSS3提供的变形支持可以对HTML组件进行常见的几何变换
- 旋转
- 缩放
- 倾斜
- 位移
CSS3位变形支持提供了如下两个属性值:
transform:向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。CSS3提供了如下变形函数
transform-origin:该属性摄者变形的中心点 该属性值应该指定为xCenter yCenter,其中xCenter,yCenter支持如下几种属性:
left top right bottom center 长度值 百分比:分别指定旋转中心点位于HTML组件的哪边界
其中left right只能指定给xCenter
right bottom只能指定给yCenter
四种基本变形
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>动画</title> <style> div{ display: inline-block; width: 60px; height: 60px; border: 2px solid red; margin: 20px; background-color: #bbb; } </style></head><body> <div>文字</div> 未变形 <div>文字</div><br/> <div>文字</div> 旋转30度 <div style="-moz-transform: rotate(30deg);-webkit-transform: rotate(30deg);-o-transform: rotate(30deg);">文字</div><br/> <div>文字</div> 位移120px -80px <div style="-moz-transform: translate(120px,-80px);-webkit-transform: translate(120px,-80px);-o-transform:translate(120px,-80px);">文字</div><br/> <div>文字</div> 缩放1.9 0.4 <div style="-moz-transform: scale(1.9,0.4);-webkit-transform: scale(1.9,0.4);-o-transform:scale(1.9,0.4);">文字</div><br/> <div>文字</div> 缩放0.8 2.1 <div style="-moz-transform: scale(0.8,2.1);-webkit-transform: scale(0.8,2.1);-o-transform:scale(0.8,2.1);">文字</div><br/> <div>文字</div> 横向倾斜30度 <div style="-moz-transform:skew(30deg);-webkit-transform: skew(30deg);-o-transform:skew(30deg);">文字</div><br/> <div>文字</div> 纵向倾斜30度 <div style="-moz-transform:skewY(30deg);-webkit-transform: skewY(30deg);-o-transform:skewY(30deg);">文字</div><br/></body></html>
效果:
同时应用多种变形
如果希望我们为HTML组件同时应用多种变形 可以为transform同时指定多个变形函数
比如看如下代码:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>动画</title> <style> div{ position: absolute; width: 140px; height: 140px; border: 2px solid red; margin: 20px; background-color: #bbb; } </style></head><body> <div>文字</div> <div style="-moz-transform: rotate(30deg) translate(260px,60px) scale(2.4,0.4);-webkit-transform: rotate(30deg) translate(260px,60px) scale(2.4,0.4);-o-transform: rotate(30deg) translate(260px,60px) scale(2.4,0.4);">文字</div><br/></body></html>
效果:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>动画</title> <style> div{ position: absolute; width: 140px; height: 140px; border: 2px solid red; margin: 20px; background-color: #bbb; } </style></head><body> <div>文字</div> <div style="-moz-transform: translate(260px,60px) scale(2.4,0.4) rotate(30deg) ;-webkit-transform: translate(260px,60px) scale(2.4,0.4) rotate(30deg) ;;-o-transform: translate(260px,60px) scale(2.4,0.4) rotate(30deg) ;">文字</div><br/></body></html>
仅仅把翻转放到最后 效果就不一样了
所以需要注意下 3种同样的变换 如果变换的顺序不同 那么效果也是不同的
指定变形中心点
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>动画</title> <style> div{ position: absolute; width: 80px; height: 80px; border: 2px solid red; background-color: #bbb; } div.a{ left: 30px; top:30px; } div.b{ left:30px; top:150px } div.c{ left: 30px; top:270px; } </style></head><body> <div class="a">未变换前</div> <div class="a" style="-moz-transform-origin:left top;-moz-transform: rotate(-30deg) ; -webkit-transform-origin:left top;-webkit-transform: rotate(-30deg) ; -o-transform-origin:left top;-o-transform: rotate(-30deg) ;">左上角变形中心</div><br/> <div class="b">未变换前</div> <div class="b" style="-moz-transform-origin:right bottom;-moz-transform: rotate(65deg) ; -webkit-transform-origin:right bottom;-webkit-transform: rotate(65deg) ; -o-transform-origin:right bottom;-o-transform: rotate(65deg) ;">右下角变形中心</div><br/> <div class="c">未变换前</div> <div class="c" style="-moz-transform-origin:right center;-moz-transform: rotate(-90deg) ; -webkit-transform-origin:right center;-webkit-transform: rotate(-90deg) ; -o-transform-origin:right center;-o-transform: rotate(-90deg) ;">右边界的中心为变形中心</div><br/></body></html>
CSS3提供的Transition动画
CSS3提供了Transition动画支持 可以控制HTML组件的某个属性发生改变时会经理一段时间 以平滑渐变的方式发生改变 这就产生了动画效果
Transition属性值包括如下4个:
transition-property可以指定background-color,width,height等
transition-duration:平滑渐变的时间
transition-timing-function:渐变的速度 值可以由如下图几种
transition-delay:指定延迟时间
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>动画</title> <style> div { width:100px; height:100px; background:blue; transition:background-color 4s linear; -moz-transition:background-color 4s linear; /* Firefox 4 */ -webkit-transition:background-color 4s linear; /* Safari and Chrome */ -o-transition:background-color 4s linear; /* Opera */ } div:hover { background-color:yellow; } </style></head><body><div>鼠标移上来会发生颜色渐变</div></body></html>
效果不言而喻 鼠标移上去div区从红色渐变黄色
多个属性同时渐变
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>动画</title> <style> #target{ position: absolute; transition: left 5s linear,top 5s linear; -moz-transition: left 5s linear,top 5s linear; -webkit-transition: left 5s linear,top 5s linear; -o-transition: left 5s linear,top 5s linear; } </style></head><body> <img src="1.png" alt="气球" id="target"> <script> var target=document.getElementById("target"); target.style.left="0px"; target.style.top="0px"; document.onmousedown=function (evt) { alert(evt.pageX); alert(evt.pageY); target.style.left=evt.pageX+"px"; target.style.top=evt.pageY+"px"; } </script></body></html>
鼠标点击网页上哪里 这个图片就会移向哪里
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>动画</title> <style> div{ width: 200px; height: 180px; background-color: red; transition: background-color 2s linear 2s,width 2s linear 2s,height 2s linear 2s;/*延迟了两秒*/ -moz-transition:background-color 2s linear 2s,width 2s linear 2s,height 2s linear 2s; -webkit-transition: background-color 2s linear 2s,width 2s linear 2s,height 2s linear 2s; -o-transition: background-color 2s linear 2s,width 2s linear 2s,height 2s linear 2s; } </style></head><body> <div id="target"></div> <button onclick="zoom(2.0,'blue')">放大</button> <button onclick="zoom(0.5,'yellow')">缩小</button> <button onclick="zoom(1,'red')">恢复</button> <script> var target=document.getElementById("target"); var Width=200; var Height=180; function zoom(scale,bgColor) { target.style.width=Width*scale+"px"; target.style.height=Height*scale+"px"; target.style.backgroundColor=bgColor; } </script></body></html>
效果:
CSS3中提供的Animation动画
animation 属性是一个简写属性,用于设置六个动画属性:
形式:
@keyframes 动画名 { 百分比{...} ... } ...:hover{ animation-name:调用动画名; }
看下面的例子:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>animation动画</title> <style> @-webkit-keyframes donghua { 0% { left: 100px; } 40% { left: 150px; } 60% { left: 75px; } 100% { left: 100px; } } @-o-keyframes donghua { 0% { left: 100px; } 40% { left: 150px; } 60% { left: 75px; } 100% { left: 100px; } } @-moz-keyframes donghua { 0% { left: 100px; } 40% { left: 150px; } 60% { left: 75px; } 100% { left: 100px; } } div{ position: absolute; border: 1px solid red; width: 90px; height: 90px; background-color: #FF9A66; } div:hover{ animation-name: donghua; animation-duration: 5s; animation-iteration-count:3; } </style></head><body> <div>移动到div出现动画效果</div></body></html>
效果:
以下附一个鱼眼效果的代码:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>鱼眼效果</title> <style> div>a{ margin-left: 30px; display: inline-block; text-align: center; border: 1px solid red; border-radius: 20px; padding: 5px; background-color: #eee; } a:link{ text-decoration:none; } @-webkit-keyframes change{ 0%{ -webkit-transform: scale(1); background-color: #eee; border-radius: 10px; } 40%{ -webkit-transform: scale(1.5); background-color: #bbb; border-radius: 10px; } 100%{ -webkit-transform: scale(1); background-color: #eee; border-radius: 10px; } } @-moz-keyframes change { 0%{ -moz-transform: scale(1); background-color: #eee; border-radius: 10px; } 40%{ -moz-transform: scale(1.5); background-color: #bbb; border-radius: 10px; } 100%{ -moz-transform: scale(1); background-color: #eee; border-radius: 10px; } } @-o-keyframes change { 0%{ -o-transform: scale(1); background-color: #eee; border-radius: 10px; } 40%{ -o-transform: scale(1.5); background-color: #bbb; border-radius: 10px; } 100%{ -o-transform: scale(1); background-color: #eee; border-radius: 10px; } } a:hover{ animation-name: change; animation-duration: 3s; animation-iteration-count: infinite; } </style></head><body> <div> <a>JAVASE从入门到放弃</a> <a>JAVAEE从入门到放弃</a> <a>javasrcipt从入门到放弃</a> <a>css从入门到放弃</a> </div></body></html>
效果:
- CSS3变形与动画的相关属性
- 8.HTML5 CSS3 变形与动画相关属性
- CSS3 变形与动画
- 【CSS3初探之变形与动画】令人惊叹的CSS3
- 关于CSS3的变形、过渡、动画、关联属性
- CSS3变形与动画上
- CSS3变形与动画下
- 疯狂H5笔记 - 变形与动画相关属性
- css3动画属性--transform(变形)
- CSS3 变形、过渡、动画、关联属性浅析
- CSS3 变形、过渡、动画、关联属性浅析
- CSS3动画相关属性详解
- CSS3动画animation相关属性与关键帧规则keyframes
- CSS3中的变形与动画(下)
- CSS3中的变形与动画(上)
- CSS3中的变形与动画(下)
- css3变形与动画总结(上)
- css3变形与动画总结(下)
- struts学习总结
- 201512-1 试题名称:数位之和(100分)ccf认证
- 这些年、我收集的JQuery代码
- 文章标题
- org.hibernate.MappingException: Unknown entity: com.springboot.wt.entity.Test
- CSS3变形与动画的相关属性
- 201509-1 试题名称:数列分段(100分)ccf认证
- 3373 数据结构实验之查找一:二叉排序树
- 知乎爬虫之4:抓取页面数据
- gradle以及android studio使用
- SSH连接GitHub、GitHub配置ssh key
- SDNU 1217 CD收藏
- netty前世今生
- 201503-1 试题名称:图像旋转(100分)ccf认证