css3和html5的学习
本文是此链接的源代码。http://www.imooc.com/learn/77
关于的html5的使用:
transition----含义是:过渡的过程,能够对各种属性设置变化。
有5中过渡的形式:ease、linear、ease-in、ease-out、ease-in-out。
<!DOCTYPE html>
<html>
<head>
<title>html5 transition</title>
<style type="text/css">
#block_bar1{
width: 40px;
height: 100px;
background-color: #69c;
-webkit-transition:width 5s ease;
}
#block_bar1:hover{
width: 600px;
height: 100px;
background-color: #ff0000;
}
#block_bar2{
width: 40px;
height: 100px;
background-color: #69c;
-webkit-transition:width 5s linear;
}
#block_bar2:hover{
width: 600px;
height: 100px;
background-color: #ff0000;
}
#block_bar3{
width: 40px;
height: 100px;
background-color: #69c;
-webkit-transition:width 5s ease-in;
}
#block_bar3:hover{
width: 600px;
height: 100px;
background-color: #ff0000;
}
#block_bar4{
width: 40px;
height: 100px;
background-color: #69c;
-webkit-transition:width 5s ease-out;
}
#block_bar4:hover{
width: 600px;
height: 100px;
background-color: #ff0000;
}
</style>
</head>
<body>
<div id="block_bar1">
</div>
<div id="block_bar2">
</div>
<div id="block_bar3">
</div>
<div id="block_bar4">
</div>
</body>
</html>
不同的变化形式。
transform-----含义是:改变,使…变形;转换,动词
该行为是html5新添加的一个特性,主要translate()、rotate()、scale()、skew()等属性能够设置出动画。
example1:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
#test{
-webkit-perspective:800;
-webkit-perspective-origin: 50% 50%;
-webkit-transform-style:-webkit-preserve-3d;
}
#block{
width: 500px;
height: 500px;
background-color: #69c;
margin: 100px auto;
-webkit-transform:rotateZ(30deg);
}
</style>
</head>
<body>
<div id="test">
<div id="block">
</div>
</div>
</body>
</html>
example2:
<!DOCTYPE html>
<html>
<head>
<title>3dRotate</title>
<style type="text/css">
#test{
-webkit-perspective:800;
-webkit-perspective-origin:50% 50%;
-webkit-tranform-style:-webkit-preserve-3d;
}
#block{
width: 200px;
height: 200px;
background-color: #6699cc;
margin:100px auto;
}
#option{
margin: 60px auto;
font-size: 16px;
font-weight: bold;
width: 800px;
}
#option .range-control{width: 700px;}
</style>
<script type="text/javascript">
function rotate(){
var x=document.getElementById("rotatex").value;
var y=document.getElementById("rotatey").value;
var z=document.getElementById("rotatez").value;
document.getElementById("block").style.webkitTransform = "rotateX("+x+"deg) rotateY("+y+"deg) rotateZ("+z+"deg)";
document.getElementById("degX-span").innerText =x;
document.getElementById("degY-span").innerText =y;
document.getElementById("degZ-span").innerText =z;
}
</script>
</head>
<body>
<div id="test">
<div id="block"></div>
</div>
<div id="option">
<p>rotateX:<span id="degX-span">0</span> degree</p>
<input type="range" min="-360" max="360" id="rotatex" value="0" class="range-control" onMouseMove="rotate()" /><br>
<p>rotateY:<span id="degY-span">0</span> degree</p>
<input type="range" min="-360" max="360" id="rotatey" value="0" class="range-control" onMouseMove="rotate()" /><br>
<p>rotateX:<span id="degZ-span">0</span> degree</p>
<input type="range" min="-360" max="360" id="rotatez" value="0" class="range-control" onMouseMove="rotate()" /><br>
</div>
</body>
</html>
使用transform对translate和rotate进行设置。
最后一个是3维场景的搭建和翻页效果:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
#my3dspace{
-webkit-perspective:800;
-webkit-perspective-origin:50% 50%;
overflow: hidden;
}
#pagegroup{
width: 400px;
height: 400px;
margin: 0px auto;
-webkit-transform-style:preserve-3d;
position: relative;
}
#op{
text-align: center;
margin:40px auto;
}
.page{
width: 360px;
height: 360px;
padding: 20px;
background-color: #000;
color: #fff;
font-weight: bold;
font-size: 360px;
line-height: 360px;
text-align: center;
position: absolute;
}
#page1{
-webkit-transform-origin:bottom;
-webkit-transition:-webkit-transform 1s linear;
}
#page2,#page3,#page4,#page5,#page6{
-webkit-transform-origin:bottom;
-webkit-transition:-webkit-transform 1s linear;
-webkit-transform:rotateX(90deg);
}
</style>
<script type="text/javascript">
var curIndex = 1;
function next(){
if(curIndex == 6)
return;
var curPage = document.getElementById("page"+curIndex);
curPage.style.webkitTransform = "rotateX(-90deg)";
curIndex ++;
var nextPage = document.getElementById("page"+curIndex);
nextPage.style.webkitTransform = "rotateX(0deg)";
}
function prev(){
if(curIndex == 1)
return;
var curPage = document.getElementById("page"+curIndex);
curPage.style.webkitTransform = "rotateX(90deg)";
curIndex --;
var nextPage = document.getElementById("page"+curIndex);
nextPage.style.webkitTransform = "rotateX(0deg)";
}
</script>
</head>
<body>
<div id="my3dspace">
<div id="pagegroup">
<div class="page" id="page1">1</div>
<div class="page" id="page2">2</div>
<div class="page" id="page3">3</div>
<div class="page" id="page4">4</div>
<div class="page" id="page5">5</div>
<div class="page" id="page6">6</div>
</div>
</div>
<div id="op">
<a href="javascript:next()">next</a> <a href="javascript:prev()">previous</a>
</div>
</body>
</html>