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

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

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

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

jQuery

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

CSS

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

Q&A

解決済

1回答

391閲覧

offset-pathを使った動きを、可変させたい

shichimi73

総合スコア1

JavaScript

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

jQuery

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

CSS

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

0グッド

0クリップ

投稿2023/10/23 10:11

実現したいこと

offset-pathを使った動きを、可変させたい

前提

offset-pathをつかったアニメーションを背景としたときに、
中の要素の量が増えたり減ったりしたら一緒に高さが変わるようにしたいです。
offset-pathを可変させることはできるのでしょうか?

ひょうたんの半分のような曲線のsvgにそって、円を動かしたいと思っています。
曲線のsvgは preserveAspectRatio="none" でアスペクト比を無視することで
縦に伸ばすことができました。
このときのpathのd属性値を調べれば可変させられるのではと思ったのですが、

const path = document.getElementById('pathD').querySelector('path').getAttribute('d'); console.log(path);

で調べたところ、可変させる前の元の値が表示されました。

初心者で文章も読みにくく申し訳ないのですが、
何か方法があったりするのでしょうか。
ご教示いただけますと幸いです。よろしくお願いいたします。

該当のソースコード

<section class="sec"> <div class="bgWrap"> <div class="bg01-1"> <svg preserveAspectRatio="none" id="pathD" class="bg01-1_content" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 282 720" fill="none"> <path d="M277 0C277 180 5 180 5 360C5 540 277 540 277 720" stroke="white" stroke-width="10" /> </svg> </div> <div class="bg01-2"> <svg preserveAspectRatio="none" class="bg01-2_content" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 282 720" fill="none"> <path d="M5.00001 0C4.99996 180 277 180 277 360C277 540 4.99996 540 5.00001 720" stroke="white" stroke-width="10" /> </svg> </div> </div> <div class="pathBox"> <div class="pathWrap01"> <div id="pathD01" class="path _01-1"></div> </div> <div class="pathWrap01"> <div class="path _01-2"></div> </div> </div> <h2 class="ttl">100</h2> </section>
.sec { height: 100vh; background-color: #ddd; } .bgWrap { width: 100%; display: flex; align-items: center; justify-content: center; position: absolute; } .bg01-1, .bg01-2 { width: 282px; height: 100vh; } .bg01-1_content, .bg01-2_content { height: 100%; width: 282px; position: absolute; top: 0; } .path { width: 8px; height: 8px; border-radius: 100px; background-color: #ff4e7e; animation: move 2s linear infinite; position: absolute; } .pathBox { width: 100%; height: 100%; display: flex; justify-content: center; } .pathWrap01 { height: 100%; width: 272px; } .path._01-1 { offset-path: path('M273 0C273 180 1 180 1 360C1 540 273 540 273 720'); } .path._01-2 { offset-path: path('M1.00001 0C0.999964 180 273 180 273 360C273 540 0.999964 540 1.00001 720'); }

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

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

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

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

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

yambejp

2023/10/24 05:29

> 中の要素の量が増えたり減ったりしたら一緒に高さが変わるようにしたい を詳しく説明してください。できれば図示してもらうと回答が付きやすいと思います
guest

回答1

0

ベストアンサー

ひょうたんの半分のような曲線のsvgにそって、円を動かしたい

であればこんな感じ

svg

1<svg preserveAspectRatio="none" id="pathD" class="bg01-1_content" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 282 720" fill="none" height=300> 2 <rect x=0 y=0 width=282 height=720 fill=lightgray /> 3 <path d="M277 0C277 180 5 180 5 360C5 540 277 540 277 720" stroke="white" stroke-width="10" id="target_path" /> 4 <circle id="move_circle" cx="0" cy="0" r="50" fill="red"> 5 <animateMotion dur="3s" repeatCount="indefinite"> 6 <mpath xlink:href="#target_path"></mpath> 7 </animateMotion> 8 </circle> 9</svg> 10

投稿2023/10/24 05:31

yambejp

総合スコア117622

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

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

shichimi73

2023/10/24 09:42

ご回答いただきありがとうございます! これをheight:100%や80%等としたときに、伸び縮みさせることってできるんでしょうか?
yambejp

2023/10/24 09:48

>height:100%や80% svgのwidthとheightを具体的な数値をいれて確認すればアスペクトがおかしなデータも動作していることがわかると思いますが、かなり歪むのであまりおすすめはできませんが・・・
shichimi73

2023/10/25 01:58

試してみたところ、伸ばすことができ、やりたい動きができました! 複雑なsvgではないので、そこまでのゆがみもなかったように思います。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問