CSS3元素環繞另一個元素旋轉

admin發表於2017-11-21

分享一段程式碼例項,利用CSS實現一個元素旋轉另一個元素的功能。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#box {
  margin:200px;
  font-size:0px;
}
.aa,.bb {
  width: 30px;
  height: 30px;
  display: inline-block;
  border: 1px solid #000;
  border-radius: 100%;
  margin-top: 50px;
  text-align: center;
  line-height: 30px;
  font-size:12px;
}
.bb:hover + div  {
  color: #f00;
  transform: rotate(360deg);
  transform-origin: -15px 15px;
  transition:transform 5s;
}
</style>
</head>
<body>
<div id="box">
  <div class="bb">2</div>
  <div class="aa">1</div>
</div>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

[CSS] 純文字檢視 複製程式碼
#box {
  margin:200px;
  font-size:0px;
}

設定字型大小為0px,是為了消除兩個display: inline-block元素之間的空隙。

[CSS] 純文字檢視 複製程式碼
.aa,.bb {
  width: 30px;
  height: 30px;
  display: inline-block;
  border: 1px solid #000;
  border-radius: 100%;
  margin-top: 50px;
  text-align: center;
  line-height: 30px;
  font-size:12px;
}

設定兩個div元素為圓形。

將其設定為內聯塊級元素,這樣他們就可以在同一行顯示。

[CSS] 純文字檢視 複製程式碼
.bb:hover + div  {
  color: #f00;
  transform: rotate(360deg);
  transform-origin: -15px 15px;
  transition:transform 5s;
}

當滑鼠懸浮於class屬性值為bb的元素之上時,它後面緊鄰的兄弟元素就會旋轉起來。

transition:transform 5s不要寫成transition:all 5s,否則旋轉軸心(原點)也會以動畫方式移動到元素1的中心點。

二.相關閱讀:

(1).border-radius參閱CSS3 border-radius一章節。

(2).transform: rotate()參閱transform: rotate()一章節。

(3).transform-origin參閱CSS3 transform-origin一章節。

(4).transition參閱CSS3 transition一章節。

相關文章