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

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

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

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

jQuery

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

Q&A

1回答

888閲覧

画面スクロール後に数秒間処理を続行したい

uio

総合スコア19

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/12/10 08:25

編集2018/12/10 08:28

JSパララックスを使用して背景画像を動かしたいのですが、
その際に、上下スクロール終了の後にゆっくりと徐々に動きが止まるようにしたいと思っています。

こちらのサイトの背景の水滴部分のような動きにしたいのですが、
該当部分のJSコードを見ても何をしているのかわかりません。
リンク内容

CSSにて背景画像を設置して、JSで以下のようにコード入れてみました。

【CSS】

.contents{ overflow: hidden; background: url(images/bg1.jpg) repeat-y center top; background-size: contain; }

【JS】

(function ($) { 'use strict'; let scrollPosi = 0; $(window).scroll(function () { scrollPosi = $(document).scrollTop(); $('.contents').stop(true, true).animate({ 'background-position-y': -scrollPosi + 'px' }, 2000); }); })(jQuery);

一応上記の形でパララックスの動きは実装できるのですが、
スクロール後に背景画像がすぐ止まってしまいます。

参考サイトの様に、スクロール後にゆっくり背景画像の動きが止まる様にする方法がわかりません。

もし何かお分かりの方がいらっしゃいましたら、ぜひご教授ください。
どうぞよろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

これらのJSで期待通りのことができるはずです。
これをそのままテストしてみてください。
理屈がわかったら色々組み替えてみてください。

スクロールしてない時にアニメーションA
スクロールしてる時にアニメーションBみたいな
あと上方向なのか下方向なのか

html

1<header id="header"> 2 <h1><div class="logo">T</div></h1> 3 <nav> 4 <ul> 5 <li><a id="home" href="#">1</a></li> 6 <li><a id="about" href="#">2</a></li> 7 <li><a id="clients" href="#">3</a></li> 8 <li><a id="us" href="#">4</a></li> 9 </ul> 10 </nav> 11</header>

css

1body { 2 margin: 0; 3 padding: 0; 4 height:5000px; 5} 6#header { 7 position: fixed; 8 top: 0; 9 left: 0; 10 width: 100%; 11 margin-bottom: 20px; 12 height: 100px; 13 line-height: 100px; 14 background-color: red; 15 -webkit-transition: all 0.4s ease-in-out; 16 -moz-transition: all 0.4s ease-in-out; 17 -o-transition: all 0.4s ease-in-out; 18 -ms-transition: all 0.4s ease-in-out; 19 transition: all 0.4s ease-in-out; 20} 21#header h1, 22#header ul, 23#header li { 24 margin: 0; 25 padding: 0; 26 list-style: none; 27 float: left; 28} 29#header h1 { 30 width: 300px; 31 height: 100px; 32 text-align: center; 33 background-color: yellow; 34 -webkit-transition: all 0.4s ease-in-out; 35 -moz-transition: all 0.4s ease-in-out; 36 -o-transition: all 0.4s ease-in-out; 37 -ms-transition: all 0.4s ease-in-out; 38 transition: all 0.4s ease-in-out; 39} 40#header li { 41 margin-left: 50px; 42} 43/* Active */ 44#header.active { 45 height: 50px; 46 line-height: 50px; 47 background-color: pink; 48} 49#header.active h1 { 50 width: 200px; 51 height: 50px; 52 text-align-last: auto; 53 background-color: blue; 54}

js

1/// スクロールで上か下かの判定 2var $cheight = $(window).scrollTop(); 3$(window).scroll(function() { 4 isScrolling = 1; 5 var $height = $(window).scrollTop(); 6 $('.logo').text($height); 7 $('#home').text($height); 8 $('#about').text($cheight); 9 if($height > $cheight) { 10 $('#clients').text('DN'); 11 } else { 12 $('#clients').text('UP'); 13 } 14 $cheight = $height; 15}); 16 17/// スクロールしてるかしてないかの判定 18var timer; 19$('#us').text(0); 20window.addEventListener("scroll", function () { 21 $('#us').text(1); 22 clearTimeout( timer ) ; 23 timer = setTimeout( function () { 24 $('#us').text(0); 25 }, 100 ) ; 26});

投稿2018/12/10 09:36

編集2018/12/10 09:39
Tololololo

総合スコア118

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

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

uio

2018/12/12 07:25 編集

返信遅くなり申し訳ございません。 回答ありがとうございます。いただいたコードで試してみました所、 スクロール中とスクロール後のアクションは実装ができたのですが、 スクロール中からスクロール後のアクションに移る間の繋ぎ目の時間に どうしても一度動きが止まってしまうような状態になってしまいました。 そこをスムーズに繋ぎ目ができないように、easing functionでできないか等色々 トライしていたのですが、まだ解決まで至っておりません。 もう少し引き続きやってみようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問