Haru57636433
@Haru57636433 (haru .)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

css animationでボーダー線を伸縮させるアニメーションについて

解決したいこと

添付画像の通り、ボーダーの線が伸縮するアニメーションを作成しております。
理想は上側から下に向かって伸縮するアニメーションにしたいのですが、
現状下から上に伸縮している状態です。

image.png
image.png
image.png
image.png

該当箇所CSS


.scroll-area {
    width: 100%;
    text-align: left;
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
}

.scroll {
    color: white;
    font-size: 16px;
    font-weight: 600;
    transform: rotate(-90deg);
    position: absolute;
    bottom: 10vh;
    left: 0;
}

.bar {
    content: "";
    writing-mode: vertical-lr;
    color: transparent;
    margin-left: 25px;
    margin-top: 10px;
}

.bar::after {
    content: "";
    border-left: solid 1px white;
    animation: bar02 1.0s linear infinite alternate-reverse;
    animation-fill-mode: forwards;
    writing-mode: vertical-lr;
}

@keyframes bar02 {
    0% { content: ""; opacity: 1.0;}
    10% { content: "a"; opacity: 1.0;}
    20% { content: "aa"; opacity: 1.0;}
    30% { content: "aaa"; opacity: 1.0;}
    40% { content: "aaaaa"; opacity: 1.0;}
    50% { content: "aaaaaa"; opacity: 1.0;}
    60% { content: "aaaaaaa"; opacity: 1.0;}
    70% { content: "aaaaaaaa"; opacity: 1.0;}
    80% { content: "aaaaaaaaa"; opacity: 1.0;}
    90% { content: "aaaaaaaaaa"; opacity: 1.0;}
    100% { content: "aaaaaaaaaaaa"; opacity: 1.0;}
}

該当箇所HTML

        <section class="header">
            <div class="header-logo"><img src="./img/logo.png" alt="ロゴ"></div>
            <video playsinline autoplay muted loop>
                <source src="./video/movie01.mp4" type="video/mp4">
                <source src="./video/movie02.mp4" type="video/mp4">
            </video>
            <div class="scroll-area">
                <p class="scroll">scroll</p>
                <p class="bar"></p>
            </div>
        </section>

自分で試したこと

transform: rotate(-90deg);

こちらで0~360degまで回転させたり、
transform: rotateZ(-90deg);
で回転させたりしたのですが、どうしても上から下に伸びてくれない状態です。

どうすれば上から下向きに伸縮するようにできますでしょうか?

宜しくお願いします。

0

3Answer

scroll-areaに対して、ボーダーの最大の長さ分領域を用意してあげれば実現できそうです。
イメージこんな感じでしょうか?

See the Pen by yotty (@yotty) on CodePen.

1Like

Comments

  1. @Haru57636433

    Questioner

    ご丁寧にCODEPENで分かりやすくありがとうございます、
    ご指摘いただいた通り、修正したところ無事想定通りの動作となりました😂

    高さがないからcontent"aaaaaa"が逆流していたイメージですかね?💦
    助かりました、ありがとうございます!!

高さがないからcontent"aaaaaa"が逆流していたイメージですかね?💦

scroll-areaを下から固定していて中の文字の長さが変わっているので、下から領域が伸びているって感じですね。
枠線をつけてみるとすごい分かりやすいと思います。

See the Pen by yotty (@yotty) on CodePen.

See the Pen by yotty (@yotty) on CodePen.

1Like

Comments

  1. @Haru57636433

    Questioner

    なるほど!!そういうことでしたか、とても分かりやすいです😂
    bottom 0 で指定して、高さがない状態だったから下から
    content="aaa"がどんどん増えて言った形なんですね!

    とても分かりやすくありがとうございました🙇

This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌