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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

528閲覧

CSSのアニメーションで始値を指定した実装方法

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/01/21 21:43

編集2021/01/22 01:22

お世話になります。

CSSのアニメーションを利用して、
横にスライドするプログラムを実装しています。

以下のプログラムで、
X値が-100pxから1000pxまでスライドはできたのですが、

これを、ブラウザのリロード時に
Xの始値を例えば100pxに設定して、(Y値は固定

1回目:X値が100pxから1000pxまでスライド
2回目:X値が-100pxから1000pxまでスライド
3回目:2回目の繰り返し
※速度は10sで一定です

の挙動をする実装方法をここ数日、探しております。

探した結果として、
Javascriptを利用してロード時に
style属性に代入するのかと思いましたが、
具体的な書き方が分からず、また合っているか分からないため
ここに質問しました。

質問した結果、
Javascriptを利用したロード時のstyle属性で
方向性が合っていそうなので
Javascriptのコードを書きました。

発想は、ページロード時に
①現在のtransformの値を取得して、
②translateXの値に200pxを加算
です。

①はできました。「matrix(1, 0, 0, 1, -100, 50)」。
②が分からなく、どのようなコードを書けば、
①で取得した値のtranslateXに加算できるのでしょうか。

アドバイスをいただけないでしょうか。
よろしくお願い致します。

html

1<section> 2<div id="node1">みどり</div> 3</section>

css

1#node1 { 2animation: anm1 10s; 3animation-iteration-count:infinite; 4} 5@keyframes anm1 { 60% { 7transform: translate(-100px,50px); 8} 9100% { 10transform: translate(1000px,50px); 11} 12}

javascript

1<script> 2 let box = document.getElementById("anm1"); 3 let get_original_value = window.getComputedStyle(box, null).getPropertyValue('transform'); 4 alert(get_original_value); 5 box.style.transform = 'translateX(200px)'; 6</script> 7 8matrix(1, 0, 0, 1, -100, 50)

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

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

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

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

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

m.ts10806

2021/01/21 22:13

タグにJavascriptがあるのはどういう理由でしょうか
退会済みユーザー

退会済みユーザー

2021/01/21 22:36 編集

解決方法として、Javascriptを利用した方法があるのでは?と思いタグを付けましたが、 間違った利用方法でしたら削除いたしますので、お手数ですが、教えていただけないでしょか。 いちお追加で編集しました。
m.ts10806

2021/01/21 22:32

>Javascriptを利用してリロード時に style属性に 考え方の方向性は合ってると思います。「イベントの取得」とかでキーワード分解して調べて素材集めていけばご自身でももっと進められそうに思いますよ
退会済みユーザー

退会済みユーザー

2021/01/21 22:38

ありがとうございます。 方向性が間違っていないというだけでも良かったです。 このまま実装に向けて自分自身でも進めてまいります。
guest

回答1

0

ベストアンサー

animation-delayにマイナス値を設定すれば、開始値を進めることができます。

css

1.node1 { 2 animation: anm1 10s linear; 3 animation-delay: -1.89s; 4 animation-iteration-count: infinite; 5}

1.89sは下記のように計算します。
-100pxから1000pxまでなので移動距離は1100px
100pxが開始位置ということは、200px移動した地点
10s * (200 / 1100) = 1.888・・・

一括指定で記述すると、

css

1.node1 { 2 animation: anm1 10s linear -1.89s infinite; 3}

animation-timing-function を初期値(ease)で、開始時もease-inで開始したい場合は、複数アニメーションを設定するいいでしょう。カンマで区切って記述すると複数のアニメーションを設定できます。

css

1.node1 { 2 animation: anm0 8.11s, anm1 10s 8.11s infinite; 3} 4@keyframes anm1 { 5 0% { 6 transform: translate(-100px,50px); 7 } 8 100% { 9 transform: translate(1000px,50px); 10 } 11} 12@keyframes anm0 { 13 0% { 14 transform: translate(100px,50px); 15 } 16 100% { 17 transform: translate(1000px,50px); 18 } 19}

投稿2021/01/21 23:36

編集2021/01/22 00:16
hatena19

総合スコア34075

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

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

退会済みユーザー

退会済みユーザー

2021/01/22 01:14

ありがとうございます。 後ほど試してみます。 まずはお礼までに..
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問