溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

css3屬性transform-origin怎么用

發(fā)布時間:2022-03-03 11:34:25 來源:億速云 閱讀:253 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“css3屬性transform-origin怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“css3屬性transform-origin怎么用”這篇文章吧。

  transform是CSS3里的變換屬性,常用的有translate(平移)、rotate(旋轉(zhuǎn))、skew(傾斜)、scale(縮放)方法。而transform-origin并不是transform的屬性值,其具有獨立的語法,但值得注意的是,transform-origin必須配合transform來使用,這個從名字也可以看得出來,就是給transform設(shè)置的各種動作設(shè)置一個參考點。默認(rèn)情況下,元素的動作參考點為元素盒子的中心。transform可以設(shè)置九個位置的值,水平方向有l(wèi)eft | center | right 三個值,垂直方向也有三個,分別是 top | center |bottom ,故一共有九個。

  語法:

  transform-origin:[ <percentage> | <length> | left | center① | right ] [ <percentage> | <length> | top | center② | bottom ]?

  默認(rèn)值:50% 50%,效果等同于center center

  適用于:所有塊級元素及某些內(nèi)聯(lián)元素

  取值:

  <percentage>:用百分比指定坐標(biāo)值??梢詾樨?fù)值。

  <length>:用長度值指定坐標(biāo)值??梢詾樨?fù)值。

  left:指定原點的橫坐標(biāo)為left

  center①:指定原點的橫坐標(biāo)為center

  right:指定原點的橫坐標(biāo)為right

  top:指定原點的縱坐標(biāo)為top

  center②:指定原點的縱坐標(biāo)為center

  bottom:指定原點的縱坐標(biāo)為bottom

  說明:

  設(shè)置或檢索對象以某個原點進行轉(zhuǎn)換。

  該屬性提供2個參數(shù)值。

  **- 如果提供兩個,第一個用于橫坐標(biāo),第二個用于縱坐標(biāo)。

  如果只提供一個,該值將用于橫坐標(biāo);縱坐標(biāo)將默認(rèn)為50%。**

  對應(yīng)的腳本特性為transformOrigin。

  兼容性:

  transform屬性

  默認(rèn)情況,變形的原點在元素的中心點,或者是元素X軸和Y軸的50%處,如下圖所示:

  我們沒有使用transform-origin改變元素原點位置的情況下,CSS變形進行的旋轉(zhuǎn)、移位、縮放等操作都是以元素自己中心(變形原點)位置進行變形的。但很多時候需要在不同的位置對元素進行變形操作,我們就可以使用transform-origin來對元素進行原點位置改變,使元素原點不在元素的中心位置,以達(dá)到需要的原點位置。

  看上去transform-origin取值與background-position取值類似。為了方便記憶,可以把關(guān)鍵詞和百分比值對比起來記:

  top = top center = center top = 50% 0

  right = right center = center right = 100%或(100% 50%)

  bottom = bottom center = center bottom = 50% 100%

  left = left center = center left = 0或(0 50%)

  center = center center = 50%或(50% 50%)

  top left = left top = 0 0

  right top = top right = 100% 0

  bottom right = right bottom = 100% 100%

  bottom left = left bottom = 0 100%

  為了讓大家能一眼看明白,下面截圖以transform中的旋轉(zhuǎn)rotate()為例,并transform-origin取值不一樣時的效果:

  transform-origin取值為center(或center center或50% 或50% 50%):

  transform-origin取值為top(或top center或center top或50% 0):

  transform-origin取值為right(或right center 或center right 或 100% 或 100% 50%):

  transform-origin取值為bottom(或bottom center 或center bottom 或 50% 100%):

  transform-origin取值為left(或left center或center left或0或0 50%):

  transform-origin取值為top left(或left top或0 0):

  transform-origin取值為right top(或top right或100% 0):

  transform-origin取值為bottom right(或right bottom或100% 100%):

  transform-origin取值為left bottom(或bottom left 或 0 100%):

  實例:擺動的小球(鐘擺效果)

  從上圖中可以看出,小球擺動效果運用了動畫原理,以及transform-origin原理(很重要)。首先,先確定好球的變形中心點,然后在添加動畫效果。

  原理圖:

  <div class="sphere"></div>

  .sphere {

  width: 60px;

  height: 60px;

  background: #9485FD;

  border-radius: 100%;

  margin: 280px auto;

  background: radial-gradient(circle at top center, #c6bff6, #6959d8, #372a91);

  transform-origin: center -200px;

  animation: clock 4s infinite linear;

  position: relative;

  }

  .sphere::before {

  content: "";

  position: absolute;

  bottom: 100%;

  left: 50%;

  width: 1px;

  height: 200px;

  border-left: 1px #9485FD dashed;

  }

  @keyframes clock {

  0% {

  transform: rotate(0deg)

  }

  25% {

  transform: rotate(30deg)

  }

  50% {

  transform: rotate(0deg)

  }

  75% {

  transform: rotate(-30deg)

  }

  100% {

  transform: rotate(0deg)

  }

  }

以上是“css3屬性transform-origin怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI