雖說IE9以及更早版本的IE瀏覽器都不支持css3動畫,但是IE6-8瀏覽器已是江河日下,使用谷歌瀏覽器、火狐瀏覽器、IE10+瀏覽器以及移動端瀏覽器等這些支持css3動畫的瀏覽器的人數越來越多,所以如果很簡單的就能讓一部分人獲得更好的用戶體驗,那何樂而不為呢。
從廣義上來講,css3動畫可以分為兩種。
過渡動畫
第一種叫過渡(transition)動畫,就是從初始狀態過渡到結束狀態這個過程中所產生的動畫。所謂的狀態就是指大小、位置、顏色、變形(transform)等等這些屬性。css過渡只能定義首和尾兩個狀態,所以是最簡單的一種動畫。
要想使一個元素產生過渡動畫,首先要在這個元素上用transition屬性定義動畫的各種參數。可定義的參數有
transition-property:規定對哪個屬性進行過渡
transition-duration:定義過渡的時間,默認是0
transition-timing-function:定義過渡動畫的緩動效果,如淡入、淡出等,默認是 ease
transition-delay:規定過渡效果的延遲時間,即在過了這個時間后才開始動畫,默認是0
為了書寫方便,也可以把這四個屬性按照以上順序簡寫在一個 transition 屬性上:
如果是使屬性的默認值,則可以省略:
相當于:
如果想要同時過渡多個屬性,可以用逗號隔開,如:
使用transtion屬性只是規定了要如何去過渡,要想讓動畫發生,還得要有元素狀態的改變。如何改變元素狀態呢,當然就是在css中給這個元素定義一個類(:hover等偽類也可以),這個類描述的是過渡動畫結束時元素的狀態。
這樣,當我們把鼠標移動到div上的時候,div的狀態發生了變化,就能看到寬度從100到400,高度從100到400,背景顏色從黑到紅的,過渡時間為3秒的過渡效果了。
除了使用hover等系統提供的偽類外,我們也可以隨意的定義自己的類,然后想要過渡時就通過js把類加到元素上面:
對鼠標進行操作就會產生鼠標事件,比如按下、松開鼠標左鍵、右鍵或滾輪等。
onmousemove事件:當鼠標指針在指定元素上移動時,就會觸發該事件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#box{
width: 200px;
height: 200px;
background-color: aqua;
}
</style>
</head>
<body>
<div id="box">
</div>
<script>
let box=document.getElementById("box");
box.onmousemove=function(){
box.style.backgroundColor="red";
}
</script>
</body>
</html>
當鼠標移動到div方形區域內,背景顏色變為紅色。
onmousedown事件:當鼠標指針移動到指定元素上并按下,會觸發該事件。
let box=document.getElementById("box");
box.onmousedown=function(){
box.style.backgroundColor="red";
}
onmouseup事件:當鼠標指針移動到指定元素上按下并離開,會觸發該事件。
let box=document.getElementById("box");
box.onmousedown=function(){
box.style.backgroundColor="red";
}
box.onmouseup=function(){
box.style.backgroundColor="green";
}
createElement():通過指定名稱創建一個元素。
項目目標:
在輸入框輸入非空內容,自動添加到下方列表。
let list=document.getElementById("list");
let word=document.getElementById("word");
let arr=["吃飯", "睡覺", "打豆豆"];
for (let i=0; i < arr.length; i++) {
let temp=document.createElement("li");
temp.innerHTML=arr[i];
list.append(temp);
}
word.onblur=function() {
let value=word.value;
conssole.log(value);
if(value){
let temp=document.createElement("li");
temp.innerHTML=value;
list.append(temp);
}
else
alert("請輸入內容");
}
在事件被觸發時,js會自動生成一個event對象,控制臺輸出event可以查看這個事件的具體信息。
項目目標:瀏覽器中有一個紅色小球,鼠標點擊,小球就會移動到點擊的位置。
let box=document.getElementById("box");
document.onclick=function(event) {
let x=event.clientX;
let y=event.clientY;
box.style.left=x + "px";
box.style.top=y + "px";
}
移動時disX和disY沒有變化:
項目目標:拖動紙飛機移動。
let img=document.getElementById("img");
img.onmousedown=function (event) {
let disX=event.clientX - this.offsetLeft;
let disY=event.clientY - this.offsetTop;
img.onmousemove=function (event) {
let l=event.clientX - disX;
let t=event.clientY - disY;
this.style.left=l + 'px';
this.style.top=t + 'px';
}
img.onmouseup=function () {
img.onmouseup=img.onmousemove=null;
}
}
<script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
css鏈接
鏈接可以使用任何css屬性(例如,color,font-family,background等)來設置樣式.
另外,鏈接的樣式可以不同,具體取決于所處的狀態.以下偽選擇器可用:
a:link 定義正常的為訪問鏈接的樣式
a:visited 定義訪問鏈接的樣式
a:active 一旦點擊鏈接,鏈接就會激活
a:hover 當鼠標懸停時,鏈接的樣式
下面的例子,創建一個鏈接,當鼠標移動到它上面的時候會改變樣式
html代碼:
<p><a target="_blank">搜狗</a></p>
css代碼:
a:hover{ color:red; }
執行結果如下:
這是鼠標移動到鏈接上時,顯示的樣式
當為鏈接設置樣式時,必須遵守以下規則:
a:hover 必須在a:link和a:visited之后
a:active 必須在a:hover之后
默認情況下,文本鏈接由瀏覽器加下劃線.
處理帶鏈接的文本,css最常見的用法之一是刪除下劃線.在下面的示例中,text-decoration屬性用于刪除下劃線.
html代碼:
<p><a class="text-decoration" href="https:www.sougou.com">我的下劃線已經被刪除了!</a></p>
css代碼:
a.text-decoration:link{text-decoration:none;}
效果如下:
以下屬性用于控制鏈接的樣式:
border:none 從包含鏈接的圖像中刪除邊框
outline:none 刪除IE中點擊鏈接行上的虛線邊框
二 css自定義鼠標光標樣式
css允許你將鼠標懸停在元素上時,設置所需的光標樣式.例如,你可以將光標更改為手形圖標,幫助圖標等.而不是默認的指針.
在下面的例子中,當我們將鼠標移動到span元素上時,鼠標指針被設置為一個幫助圖標.(cursor就是光標的意思)
<span style="cursor:help;">需要幫忙么?</span>
效果如下:
cursor屬性還有許多其他的值.例如:
default:默認光標
crosshair:光標顯示為十字準線
pointer:光標顯示為手形圖標
cursor的值比較多,用圖片顯示給大家:
通常改變鼠標光標的外觀,是為了提高網站訪問者的體驗.但是,選擇錯誤的光標風格也可能會引起誤解.
*請認真填寫需求信息,我們會在24小時內與您取得聯系。