質問編集履歴

1

コード具体化を試みます

2018/06/06 07:59

投稿

biggee
biggee

スコア6

test CHANGED
File without changes
test CHANGED
@@ -12,39 +12,49 @@
12
12
 
13
13
 
14
14
 
15
+ ### 追記
16
+
17
+ ソースコード内に実行を試みたソースを追記しました。
18
+
19
+
20
+
21
+
22
+
15
- ### 該当のソースコード
23
+ ### ソースコード
16
24
 
17
25
  ```jquery
18
26
 
19
- var win_scr = $(window).scrollTop();
27
+ $(window).on('resize load scroll', function(){
20
28
 
21
- var win_h = $(window).height();
29
+ var win_scr = $(window).scrollTop();
22
30
 
23
- var elem_pos = $('XXX').offset().top; //すべて要素 の位置
31
+ var win_h = $(window).height();
24
32
 
25
- var elem_scr = $('XXX').scrollTop(); //
33
+ var elem = $('body').find('*'); //すべての要素が取得できることを確認
34
+
35
+  var elem_pos = elem.offset().top; //body内最初の子要素のoffsetTopを取得する .....課題1
26
36
 
27
37
 
28
38
 
29
- //scrollで画面内の判定
39
+  //scrollで画面内の判定
30
40
 
31
- if(elem_pos - win_h > win_scr) {
41
+ if(elem_pos - win_h > win_scr && elem_pos < win_h) { //elemが画面内に入ったとき、elem_posが画面の高さより小さいとき
32
42
 
33
- //elemが画面内に入ったときに行う処理。elemが取れないので成り立たない。。
43
+ //課題:このときelem_posが取れないので判定ができず下記が実行されない
44
+
45
+ elem.each(function() { //elemに対して
46
+
47
+ var t = $(this); //win_h内に入った要素をthisに入れる .....課題2
48
+
49
+ t_tag = t[0].tagName; //DOMにしてtag名を取得
50
+
51
+ console.log(t_tag); //tag名を表示
52
+
53
+ }
54
+
55
+ }
34
56
 
35
57
  }
36
-
37
- ```
38
-
39
-
40
-
41
- ### 試したこと
42
-
43
- ```
44
-
45
- //すべての要素
46
-
47
- $('body').find('*'); //全部のタグは取れたが、、
48
58
 
49
59
 
50
60
 
@@ -52,6 +62,14 @@
52
62
 
53
63
 
54
64
 
65
+ ### 課題
66
+
67
+ 課題1:elem_posを条件式に使いたいが、ここで取れるのはbodyの最初の要素だけ。
68
+
69
+ 課題2:$(this)がwin_h内に入った要素を取得できていない
55
70
 
56
71
 
72
+
73
+
74
+
57
- 拙い説明ですが、どなたかよろしくお願いいたします。
75
+ 拙い説明ですが、よろしくお願いいたします。