質問するログイン新規登録

質問編集履歴

2

改善

2019/12/05 07:00

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- jsスクロールした時の挙動して
1
+ jsスクロールにかんして
body CHANGED
@@ -1,37 +1,15 @@
1
+ jQuery(function($){
1
- 今、下記jsで一定の位置までスクロールした時に動きを付けるjsを作っています。
2
+ 'use strict';
2
- ただ下記だと、ページの一番下を見ている状態でも更新をすると動きが始まってしまいます。
3
-
4
- できればstartPointのところだと思うのですが、これをここより下の位置にいたらjs開始ではなく、
5
- ここからここまでの間にいたら、js開始というコードに変えたいのですが、どのようにやれば良いかが分かりません。
6
-
7
- ```
8
- $(window).on('scroll resize load',function(){
3
+ var inviewObserver = new IntersectionObserver(function(entries, observer){
9
- scrolltop = $(window).scrollTop();
10
- windowHeight = $(window).height();
4
+ entries.forEach(function(entry) {
11
- startPoint = scrolltop + windowHeight - 100;
5
+ if (!entry.isIntersecting) return;
12
- if(startPoint > target){
6
+ var $target = $(entry.target),
13
- if(flg==false){
14
- mySVG.drawsvg('animate');
15
- flg = true;
7
+ delay = 200;
8
+ if($target.hasClass('js-fv')){
9
+ delay = 800;
16
- }
10
+ }
17
- }
11
+ $target.delay(delay).queue(function() {
12
+ $target.addClass('is-inview').dequeue();
18
- });
13
+ });
19
- ```
20
-
21
- やってみたこと。
22
- startPoint2というのを追加して、targetに挟んでみたのですがうまくいきませんでした。
23
-
24
- ```
25
- $(window).on('scroll resize load',function(){
26
- scrolltop = $(window).scrollTop();
27
- windowHeight = $(window).height();
28
- startPoint = scrolltop + windowHeight - 100;
29
- startPoint2 = startPoint + 500
30
- if(startPoint > target > startPoint2){
14
+ observer.unobserve( entry.target );
31
- if(flg==false){
32
- mySVG.drawsvg('animate');
33
- flg = true;
34
- }
35
- }
36
- });
15
+ });
37
- ```

1

改善

2019/12/05 07:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -27,7 +27,7 @@
27
27
  windowHeight = $(window).height();
28
28
  startPoint = scrolltop + windowHeight - 100;
29
29
  startPoint2 = startPoint + 500
30
- if(startPoint > target > startPoint2){
30
+ if(startPoint > target > startPoint2){
31
31
  if(flg==false){
32
32
  mySVG.drawsvg('animate');
33
33
  flg = true;