質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3735閲覧

css hoverで円を中心から広げたい

SugiuraY

総合スコア317

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/05/10 04:20

円の中心から広がるようにCSSを描く方法として
過去の記事を見つけることができました。
transformを使用してできるようですが、hover時にこれを実行したいのですが
うまく動作させることができません。
transitionを使って widthとheightを0pxからhover時に.circle_1をそれぞれ20pxにするような
やり方はできたのですが、中心からは広がらず、左上から広がることがわかりました。

●やりたいことは以下の通りなのですが、問題点と解決方法についてアドバイスを頂けますでしょうか。
宜しくお願い申し上げます。

  1. .li_1にhoverした時に
  2. .circle_1が中心からwidthとheightそれぞれ20pxずつ広がるようにしたい

html

1<ul> 2<li class="li_1"><div class="circle_1"></div>hoge</li><li>fuga</li> 3</ul>

css

1ul li{ 2 display:inline; 3} 4 5li{ 6 width:20px; 7 height:20px; 8 background:#ffffff; 9 border-left: 1px solid #000000; 10 padding:10px; 11} 12 13.circle_1{ 14 position:absolute; 15 left:70px; 16 width:20px; 17 height:20px; 18 /* transition:all 1s ease; */ 19 transform:50% 50%; 20 background:gray; 21 border-radius:50%; 22} 23 24.li_1:hover .circle_1{ 25@keyframes big{ 26 0%{ 27 transform: scale(0); 28 } 29 100%{ 30 transform: scale(1); 31 } 32} 33}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

簡易的に1.2にしております。
(数値px指定できたかは覚えていないのでお調べいただくのが一番かと思います。。)

.li_1:hover .circle_1:hover{ -webkit-transform: scale(1.2); -moz-transform: scale(1.2); -o-transform: scale(1.2); -ms-transform: scale(1.2); transform: scale(1.2); } }

投稿2019/05/10 04:28

wataame

総合スコア302

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2019/05/10 04:58

コメントありがとうございます。 transform: scale()を使ったことがなかったのですが、初めてしりました。 初めにwidthとheightを0にして円を出現させる場合、倍率の1.2では表現できないのではとおもったのですが、これもopacityとの組み合わせで対応できそうです。
guest

0

ベストアンサー

@keyframesの使い方が理解できていないようですので
こちらをご参照ください。
こちらを読んで理解すれば実装できます。
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations

投稿2019/05/10 04:32

yasutomi

総合スコア2937

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2019/05/10 04:55

コメントありがとうございます。以下のCSSで実行することができました! animationの各プロパティを設定することを失念しておりました。。。 また、hoverするまでは見せたくたいのでopacityを設定することにしました。 ul li{ display:inline; } li{ width:20px; height:20px; background:#ffffff; border-left: 1px solid #000000; padding:10px; } .circle_1{ position:absolute; left:70px; width:20px; height:20px; opacity:0; /* transition:all 1s ease; */ background:gray; border-radius:50%; } .li_1:hover .circle_1{ animation-name: big; animation-duration: 1s; animation-fill-mode: forwards; } @keyframes big{ 0%{ transform: scale(0); opacity:0; } 1%{ opacity:1; } 100%{ transform: scale(1); opacity:1; } } お力添え有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問