1. 程式人生 > 其它 >CSS:CSS3 - 背景 & 過渡動畫

CSS:CSS3 - 背景 & 過渡動畫

1 背景

背景位置

background-origin:指定了背景影象的位置區域

  border-box : 背景貼邊框的邊

  padding-box : 背景貼內邊框的邊

  content-box : 背景貼內容的邊

<style>
div {
background: url("img/1.jpg") no-repeat;
width: 200px;
height: 80px;
margin: 20px;
border: 10px dashed black;
padding: 20px;
}
.a {
background-origin: border-box;
}
.b {
background-origin
: padding-box; } .c { background-origin: content-box; } </style> <body> <div class="a"></div> <div class="b"></div> <div class="c"></div> </body>

背景裁切

background-clip:

  border-box 邊框開切

  padding-box 內邊距開切

  content-box 內容開切

<style>
div {
width
: 200px; height: 80px; border: 10px dashed red; background-color: darkcyan; margin: 20px; padding: 20px; } .a { background-clip: border-box; } .b { background-clip: padding-box; } .c { background-clip: content-box; } </style> <body> <div class="a"></div> <div class="b"></div> <div class="c"></div> </body>

背景大小

background-size:

  cover 縮放成完全覆蓋背景區域最小大小

  contain 縮放成完全適應背景區域最大大小

<style>
div {
background: url("img/1.jpg") no-repeat;
width: 200px;
height: 100px;
border: 2px solid red;
margin: 20px;
}
.a {
background-size: cover; /* 完全覆蓋 */
}
.b {
background-size: contain; /* 完全適應 */
}
</style>
<body>
<div class="a"></div>
<div class="b"></div>
</body>

2過渡動畫

過渡

從一個狀態到另一個狀態,中間的“緩慢”過程;

缺點是,控制不了中間某個時間點。

transition{1 2 3 4}

  1:過渡或動畫模擬的css屬性

  2:完成過渡所使用的時間(2s內完成)

  3:過渡函式。。。

  4:過渡開始出現的延遲時間

  

transition: width 2s ease 1s;

目前,css3只開發出部分的過渡屬性,下圖所示:

<style>
div{
width: 100px;
height: 50px;
border: 2px solid red;
}
.a{
transition: width 2s linear 1s; /*1秒過後,div在2秒內勻速緩慢的變寬*/
}
div:hover{ width: 300px;} /*觸發div變寬*/
</style>
<body>
<div class="a">Hello,拉勾</div>
</body>

動畫

從一個狀態到另一個狀態,過程中每個時間點都可以控制。

  關鍵幀:@keyframes 動畫幀 { from{} to{} } 或者{ 0%{} 20%{}... }

  動畫屬性:animation{ 1 , 2 , 3 , 4 , 5 }

    1:動畫幀

    2:執行時間

    3:過渡函式

    4:動畫執行的延遲(可省略)

    5:動畫執行的次數

需求1:一個 元素從左向右移動,3秒內執行2次

<style>
div{
width: 700px;
border: 1px solid red;
}
@keyframes x{
from{ margin-left: 0px;}
to{ margin-left: 550px;}
}
img{
animation: x 3s linear 2;
}
</style>
<body>
<div>
<img src="img/cat.gif">
</div>
</body>

需求2:一個 元素從左向右移動,3秒內執行完成。無限次交替執行

infinite:無限次

alternate:來回執行(交替,一去一回)

<style>
.wai{
width: 600px;
height: 100px;
border: 2px solid red;
}
.nei{
width: 40px;
height: 80px;
margin: 5px;
background: red;
}
.nei{
animation: x 3s linear infinite alternate;
}
@keyframes x{
0%{ margin-left: 0px; }
25%{ background: yellowgreen; }
50%{ background: goldenrod; }
75%{ background: palevioletred;}
100%{
background: coral;
margin-left: 550px;
}
}
</style>
<body>
<div class="wai">
<div class="nei"></div>
</div>
</body>