DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS3基礎 >> 位移translate()方法
位移translate()方法
編輯:CSS3基礎     

一、translate()方法

在CSS3中,我們可以使用translate()方法將元素沿著水平方向(X軸)和垂直方向(Y軸)移動。

對於位移translate()方法,我們分為3種情況:

(1)translateX(x):元素僅在水平方向移動(X軸移動);

(2)translateY(y):元素僅在垂直方向移動(Y軸移動);

(3)transklate(x,y):元素在水平方向和垂直方向同時移動(X軸和Y軸同時移動);

1、translateX(x)方法

語法:

transform:translateX(x);

說明:

在CSS3中,所有變形方法都是屬於transform屬性,因此所有關於變形的方法前面都要加上“tranform:”,以表示“變形”處理。這一點大家一定要記住。

x表示元素在水平方向(X軸)的移動距離,單位為px、em或百分比等。

當x為正時,表示元素在水平方向向右移動(X軸正方向);當x為負時,表示元素在水平方向向左移動(X軸負方向)。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <title>CSS3位移translate()方法</title>
    <style type="text/css">
        /*設置原始元素樣式*/
        #origin
        {
            margin:100px auto;/*水平居中*/
            width:200px;
            height:100px;
            border:1px dashed silver;
        }
        /*設置當前元素樣式*/
        #current
        {
            width:200px;
            height:100px;
            color:white;
            background-color: #3EDFF4;
            text-align:center;
            transform:translateX(20px);
            -webkit-transform:translateX(20px);  /*兼容-webkit-引擎浏覽器*/
            -moz-transform:translateX(20px);     /*兼容-moz-引擎浏覽器*/
        }
    </style>
</head>
<body>
    <div id="origin">
        <div id="current"></div>
    </div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

“transform:translateX(20px);”表示元素在水平方向向右位移20px。如果把20px改為-20px,則元素在水平方向向左位移20px,在浏覽器預覽效果如下:

2、translateY(y)方法

語法:

tranform:translateY(y)

說明:

y表示元素在水平方向(y軸)的移動距離,單位為px、em或百分比等。

當y為正時,表示元素在垂直方向向下移動;當y為負時,表示元素在垂直方向向上移動。

很多人看到這就疑惑了:站長,有沒有搞錯呀?當y為正時,表示元素應該在垂直方向向上移動;而當y為負時,表示元素在垂直方向向下移動。這樣才對呀!

很遺憾告訴你,你錯了。在W3C規定中,出於人的習慣是從上到下閱讀,所選取的坐標系為下圖中的第2種坐標系,因此x軸正方向向右,而y軸正方向向下。而你所想到的坐標系應該是下圖中的第1種坐標系,這種坐標系是“數學形式”的坐標系,只適合在數學應用上。大家一定要搞清楚這一點!

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <title>CSS3位移translate()方法</title>
    <style type="text/css">
        /*設置原始元素樣式*/
        #origin
        {
            margin:100px auto;/*水平居中*/
            width:200px;
            height:100px;
            border:1px dashed silver;
        }
        /*設置當前元素樣式*/
        #current
、      {
            width:200px;
            height:100px;
            color:white;
            background-color: #3EDFF4;
            text-align:center;
            transform:translateY(20px);
            -webkit-transform:translateY(20px);  /*兼容-webkit-引擎浏覽器*/
            -moz-transform:translateY(20px);     /*兼容-moz-引擎浏覽器*/
        }
    </style>
</head>
<body>
    <div id="origin">
        <div id="current"></div>
    </div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

大家在在線測試中將20px改為-20px看看實際效果如何。

3、translate(x,y)

語法:

tranform:translate(x,y)

說明:

x表示元素在水平方向(x軸)的移動距離,y表示元素在水平方向(y軸)的移動距離。

注意,Y是一個可選參數,如果沒有設置Y值,則表示元素僅僅沿著X軸正方形移動。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <title>CSS3位移translate()方法</title>
    <style type="text/css">
        /*設置原始元素樣式*/
        #origin
        {
            margin:100px auto;/*水平居中*/
            width:200px;
            height:100px;
            border:1px dashed silver;
        }
        /*設置當前元素樣式*/
        #current
        {
            width:200px;
            height:100px;
            color:white;
            background-color: #3EDFF4;
            text-align:center;
            transform:translate(20px,40px);
            -webkit-transform:translate(20px,40px);  /*兼容-webkit-引擎浏覽器*/
            -moz-transform:translate(20px,40px);     /*兼容-moz-引擎浏覽器*/
        }
    </style>
</head>
<body>
    <div id="origin">
        <div id="current"></div>
    </div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

其實,單純地對某個元素設置位移是沒有太多實際的意義。位移translate()方法一般都是結合CSS3動畫一起使用,從而實現上下左右移動的動畫效果。

對於移動動畫效果,使用jQuery的animate()方法也可以實現,不過jQuery實現位移比CSS3實現來得麻煩,這是因為jQuery要想實現移動動畫效果,對位移的元素還得必須設置position屬性。但是CSS3的translate()方法則不用那麼麻煩。

在後面的章節中,我們給大家講解了CSS3動畫之後,再結合CSS3變形這一章的各種方法進行綜合實踐。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved