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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

Q&A

解決済

1回答

1848閲覧

透過された円形が広がりながら背景が現れる動きを実装したい

nori7777

総合スコア23

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

0グッド

2クリップ

投稿2023/03/05 13:45

編集2023/03/05 13:50

実現したいこと

  • 円形(透明・透過)が広がる動き
  • 全体に円形(透明・透過)広がりきるとメイン画像全体が見える
  • https://supercrowds.co/

上記のページのような動き

前提

円形で透過させた状態で背景画像を徐々に見せていきたいため、cssでbackgroundをtransparentしたり、opacityをつけたけど、そうすると円形そのものがなくなってしまいます。

該当のソースコード

/***** HTML *****/ <div class="mask"> <div class="circle"> </div> </div> <!-----以下、任意背景画像-----> <img src="/images/hogehoge.jpg" alt=""> /***** HTML *****/ /***** CSS全画面を覆う背景 *****/ .mask { position: fixed; /*固定表示*/ z-index: 999; /*最前面へ*/ top: 0; left: 0; width: 100vw; /*画面幅*/ height: 100vh; /*画面の高さ*/ background:#fff; /*好きな色*/ animation: fadeOut 0.4s forwards; /*フェードアウト*/ animation-delay: 1.6s; /*円のアニメーション+遅延時間*/ } /*フェードアウトアニメーション*/ @keyframes fadeOut { 0% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } } /***** 広がる円 *****/ .circle { position: absolute; /*固定表示*/ top: 0; bottom: 0; left: 0; right: 0; margin: auto; /*中央配置*/ width: 0; height: 0; background:#efef; /*ページ全体の背景色*/ animation: circle-open 1s linear forwards; animation-delay: 0.6s; /*任意の遅延時間*/ } /*円が拡大するアニメーション*/ @keyframes circle-open { 0% { width: 0; height: 0; border-radius: 50%; } 10%, 80% { /*少し拡大して止まる*/ width: 100px; height: 100px; border-radius: 50%; } 99% { /*ぎりぎりまで正円*/ width: 99vw; height: 99vw; border-radius: 50%; } 100% { /*全画面*/ width: 100vw; height: 100vh; border-radius: 0; } }

試したこと

円形画像に色を付けると円の形は保たれるけど、透過させると×
アドバイスよろしくお願いします。

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

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

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

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

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

CTRL-S

2023/03/05 16:29

ちょっと興味があったので調べてみました。 回答と言えるものは出せないのでコメントで。 円形にくり抜いた部分のみを透過させる方法 1.SVG画像を使う 参考 https://ics.media/entry/210701/ 2.clip-pathでCSSのトリミング 参考 https://y-com.info/contents/?p=7737 これを応用すれば実現できると思います。
nori7777

2023/03/05 16:47

わかりにくい質問にかかわらず貴重な情報ありがとうございます。私も調べてclip-pathに辿り着き、似た動きは再現できました。SVG画像のパターもあるんですね。こちらも試してみます。ありがとうございました!
miyabi_takatsuk

2023/03/06 01:52

背景画像ではなく、position: fixedさせたimg要素ではどうでしょうか? そのブロックに対して、clip-pathや、mask-clipプロパティを使う、としたほうが上手くいくような気がします。
nori7777

2023/03/06 15:06

わかりにくい質問へのアドバイスありがとうございます。こちらも試してみます!ありがとうございました!
guest

回答1

0

ベストアンサー

■原因
透過した円形を背景として使用する場合、背景が透過してしまうために円形が消えてしまうのが問題だと思います。

■対応
円形を背景画像の上に重ねて配置し、その円形を拡大しながら透過させることで、背景画像を徐々に見せるアニメーションができると思います

例としては下記のようになるかと思います

html

1<div class="mask"> 2 <div class="circle"></div> 3 <img src="/images/hogehoge.jpg" alt=""> 4</div>

css

1.mask { 2 position: fixed; 3 z-index: 999; 4 top: 0; 5 left: 0; 6 width: 100vw; 7 height: 100vh; 8} 9 10.circle { 11 position: absolute; 12 top: 50%; 13 left: 50%; 14 transform: translate(-50%, -50%); 15 width: 0; 16 height: 0; 17 border-radius: 50%; 18 background-color: rgba(255, 255, 255, 0.5); 19 animation: circle-expand 2s ease-out forwards; 20} 21 22@keyframes circle-expand { 23 0% { 24 width: 0; 25 height: 0; 26 } 27 100% { 28 width: 200vw; 29 height: 200vw; 30 } 31}

こちらは circle-expand アニメーションで円形を徐々に拡大し、透明度を下げていくことで、背景画像を徐々に見せるようにしています。

投稿2023/03/06 02:30

pikimaru

総合スコア78

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

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

nori7777

2023/03/06 15:11

具体的なアドバイスありがとうございます! なるほどcircle-expand アニメーションですね。 早速試してみます!
nori7777

2023/03/06 15:43

rgbaで透明度を下げていくと背景にまくが、張ったように最後まで見えてしまうようですね。始めから円形の中は背景がしっかり見えた状態で広がっていってほしいんです。違うアプローチもしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問