
色々と試してみるのですが、いまいち仕組みが理解できず実装ができずアドバイスをお願いできればと思います。
行いたいとこは、特定の要素が画面に入った際に、borderがアニメーションで始まって囲んでいくというものです。borderが上から、 →↓←↑の流れで動いていくイメージです。
スクロールの検知は実装しています。
ただ、どのようにボーダーの線を走らせるのかが理解できておらずうまくいきません…。
動きのイメージとしてはこちらのサイトに掲載されている、
https://goworkship.com/magazine/css-border-effec …
CSS Border Transitions内の、Drowの動きになります。
ただ、こちらのサイトで紹介されているものは、マウスオーバー時に発火するため、なんとなくhoverというのは理解できるのですが、スクロールで表示された際に走らせるにはどうしたらよいものでしょうか?
おわかりになる方いらっしゃいましたらアドバイスを頂けますと幸いです。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは
>どのようにボーダーの線を走らせるのかが理解できておらず
ごく簡単に言えば、元のboxと同じサイズのboxを疑似要素(before,after)で二つ作っておいて、それぞれに例えば「上右」、「下左」の枠線を受け持たせます。
この要素のwidth、heightを順に 0→100%にCSS transitionで変化させることで、枠線が伸びてゆくように見せています。
(width、heightで行っているため、1つの要素では枠線2つまでしか受け持てない)
>スクロールで表示された際に走らせるにはどうしたらよいものでしょうか?
トリガーを置き換えればよいですね。
簡単なのは、要素にクラス属性を付与することでしょうか。
>スクロールの検知は実装しています。
とのことですので、わかり易い手順として・・・
1)まず、参考サイトの内容をそのまま実装します。
(hoverで動作することを確認してください)
2)CSSの「〇〇:hover::before」などのトリガーをクラスに変更します
(例えば「active」クラスなら、「○○.active::before」といった要領)
3)スクリプトで「検知」したら、対象要素にactiveクラスを付与すれば
そのタイミングで、ボーダーが表示されるようになります。
(整合さえしていれば、クラス名はなんでもよいです)
※ 意味がわかれば、1)は省略して直接 2)から始めればよいでしょう。
有難うございます!
動作のCSS側はまだ把握しきれていない部分がありますが、何とかスクロールでの発火することができました。
別途jqueryにてclass指定を行い、そのclassがスクロール位置に来たらaddClassで今回::beforeなどのCSSにつけたclass名を付与するようにいたしました。
今度はもう少し記述内容を確認してみたいと思います。
詳しいご解説有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画面に表示したらアニメーションを開始したい 3 2023/01/13 15:38
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- HTML・CSS サイトをマルチデバイス対応にする為の準備や、CSSなどのおすすめサンプル集やアドバイスを頂きたいです 1 2022/07/13 22:15
- JavaScript ローディングアニメーションのロゴがページを読み込んだ後でも消えません 1 2022/09/20 21:50
- JavaScript 階層別の組織図の自動作成について 1 2022/10/26 13:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リストについて
-
floatを含むブロック
-
CSSのMETA http-equiv・・・・
-
初歩的な質問です。<div>のwidt...
-
html タグの閉じスラッシュ前の...
-
含む含まないという概念自体の...
-
改行ほどは行かないけど、若干...
-
質問1.
-
既婚男女の方、結婚前と結婚後...
-
要素の配置方法について・・・
-
input type="hidden"で取得した...
-
<object>
-
NからZへの全単射を具体的に構...
-
ある要素の中身を全部グレーア...
-
HTML の繰返し法???
-
<H>タグの見出しと<P>タグの本...
-
border: noneでボタンの境界線...
-
タグは大文字と小文字どちらが...
-
aの中にspan
-
input type="file"の幅と高さ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既婚男女の方、結婚前と結婚後...
-
含む含まないという概念自体の...
-
テキストボックスの中にリンク...
-
質問1.
-
改行ほどは行かないけど、若干...
-
NからZへの全単射を具体的に構...
-
input type="hidden"で取得した...
-
smallにtext-allignが効かない
-
aの中にspan
-
HTML の繰返し法???
-
下線と文字の間を調整するには...
-
角丸画像の背景色を透明にした...
-
html タグの閉じスラッシュ前の...
-
CSS:overflow要素の印刷について
-
HTMLページ上でiframeを最前面...
-
CSSで改行後の行間調整
-
tdに対してmin-heightの定義、...
-
H1タグを画像にしたい
-
スタイルシートで文字色を指定...
-
textareaの幅を画面と合わせたい
おすすめ情報