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

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

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

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

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

Q&A

2回答

10894閲覧

JavaScript上でvw,vhを使いたい

pppppppppp

総合スコア6

JavaScript

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

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

0グッド

0クリップ

投稿2020/07/28 06:38

やりたいこと

下記コードのように、クリックされると600px移動するコードを書きました。
レスポンシブ対応をするため、
・600pxでなくvwで指定したいです。
・SP用、PC用で移動距離を切り替えたい

現状のコード

js

1$(".banner").click(function (){ 2 var pageID = Number(this.id); 3 var myPos = (pageID+1) * -600; 4 $("#bannerMaster").animate({left: myPos}); 5});

html

1<div id="showArea"> 2 <div id="bannerMaster"> 3 <div class="banner" id="0"><img src="images/1.jpg" width="600" height="220" alt="1"></div> 4 <div class="banner" id="1"><img src="images/2.jpg" width="600" height="220" alt="2"></div> 5 <div class="banner" id="2"><img src="images/3.jpg" width="600" height="220" alt="3"></div> 6 <div class="banner" id="3"><img src="images/4.jpg" width="600" height="220" alt="4"></div> 7 <div class="banner" id="4"><img src="images/5.jpg" width="600" height="220" alt="5"></div> 8 </div> 9 </div>

今挑戦していること

とりあえず、以下の様にswitchで切り替えられるようにしました。

js

1 var $win = $(window); 2 3        $win.on('load resize', function() { 4        var windowWidth = window.innerWidth; 5 6         if (windowWidth > 799) { 7        // SP処理 8 function moveFunc(vol){ 9 var myPos = (vol+1) * -650; 10 $("#qContainer").delay(500).animate({left: myPos},500); 11 } 12        } else { 13        // PCのの処理 14 function moveFunc(vol){ 15 var myPos = (vol+1) * -650; 16 $("#qContainer").delay(500).animate({left: myPos},500); 17 } 18         } 19        });

ただ、pxからvwへの変換がわからず、pxはそのままになっています。

宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

pxからvwへの変換がわからず

ウィンドウの内幅は$(window).width()で取得できますので、あとはそこから計算できます。

投稿2020/07/28 07:00

maisumakun

総合スコア145183

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

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

0

上の方の説明がまさにその通りです。
あえて付け加えるなら
100vw=$(window).width() +"px"
10vw=$(window).width()×0.1 + "px"
みたいな数式とか

投稿2020/07/28 07:51

Jon_do

総合スコア1373

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問