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

質問編集履歴

3

書式の改善

2018/08/29 04:30

投稿

ShotaHirako
ShotaHirako

スコア6

title CHANGED
File without changes
body CHANGED
@@ -13,14 +13,13 @@
13
13
  それがどこで記憶されているのかが分かれば対応のしようがあるのですが、
14
14
  見つけ出せず困っています。。
15
15
 
16
-
16
+ 現象
17
17
  最初の要素の高さが1500pxで、入れ替えた後の要素の高さが1000pxの場合、
18
18
  1000pxまでしかスクロールしてほしくないが、1500pxまでスクロールしてしまう。
19
19
  ※要素の下部に500pxの空白ができてしまう。
20
20
 
21
-
21
+
22
- ```
23
- $(".drawer-toggle").on("click", function(e){
22
+ ```$(".drawer-toggle").on("click", function(e){
24
23
  if($('body').hasClass("drawer-open")){
25
24
  if (drawer_open_flg == false) {
26
25
  if($('.filterConditionBtn')){

2

書式の改善

2018/08/29 04:30

投稿

ShotaHirako
ShotaHirako

スコア6

title CHANGED
File without changes
body CHANGED
@@ -19,6 +19,7 @@
19
19
  ※要素の下部に500pxの空白ができてしまう。
20
20
 
21
21
  ソース:
22
+ ```
22
23
  $(".drawer-toggle").on("click", function(e){
23
24
  if($('body').hasClass("drawer-open")){
24
25
  if (drawer_open_flg == false) {
@@ -51,7 +52,7 @@
51
52
  }
52
53
  }
53
54
  });
54
- ------
55
+ ```
55
56
 
56
57
  .drawer()メソッドを複数回呼べるのであればそうしようと思っていたのですが、
57
58
  どうもできないっぽいので苦肉の策としてこのようなやり方をしています。

1

書式の改善

2018/08/29 04:29

投稿

ShotaHirako
ShotaHirako

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,19 +1,58 @@
1
- drawer.js を使ってドロワーメニューを作っています。
1
+ drawer.js を使ってドロワーメニューを表示しています。
2
2
 
3
- 商品一覧の画面で、
4
- ハンバーガーメニューがタップされたときはグローバルナビを、
3
+ 商品一覧画面でハンバーガーメニューがタップされたときはグローバルナビを、
5
4
  「条件を指定する」ボタンがタップされたときは条件指定フォームを、
6
- それぞれドロワーで出したいと思っているのですが、うまくいきません。
5
+ それぞれ同じドロワーで出し分けたいと思っているのですが、
6
+ スクロールの縦幅指定だけがうまくいきません。
7
7
 
8
- やり方としては、タップされたボタンに応じてdrawer-navの中身を
8
+ 現在のやり方としては、タップされたボタンに応じてdrawer-navの中身を
9
9
  jsで入れ替えているのですが、要素の高さが変わってしまうと、
10
- $('.drawer').drawer(); が走ったときの高さが記憶されてしまっているようで、
10
+ $('.drawer').drawer(); が走ったときにドロワー内要素の高さが記憶されて
11
- 入れ替えた後の要素の高さまでスクロールすような制御ができません。
11
+ しまっているようで、入れ替えた後の要素の高さに合わせる制御ができません。
12
12
 
13
+ それがどこで記憶されているのかが分かれば対応のしようがあるのですが、
14
+ 見つけ出せず困っています。。
15
+
13
16
  例:
14
17
  最初の要素の高さが1500pxで、入れ替えた後の要素の高さが1000pxの場合、
15
18
  1000pxまでしかスクロールしてほしくないが、1500pxまでスクロールしてしまう。
19
+ ※要素の下部に500pxの空白ができてしまう。
16
20
 
21
+ ソース:
22
+ $(".drawer-toggle").on("click", function(e){
23
+ if($('body').hasClass("drawer-open")){
24
+ if (drawer_open_flg == false) {
25
+ if($('.filterConditionBtn')){
26
+ if($(this).hasClass('filterConditionBtn')){
27
+ // 元の要素を非表示
28
+ $('#sp_gnav').css('display', 'none');
29
+ // 検索条件フォームの要素を挿入 → 表示
30
+ $('#itemList_sideNav').clone().prependTo('.drawer-menu');
31
+ $('.drawer-menu #itemList_sideNav').css('display', 'block');
32
+ }
33
+ }
34
+ drawer_open_flg = true;
35
+ // 背景のスクロール停止
36
+ window.addEventListener( 'touchmove' , movefun , { passive: false } );
37
+ }
38
+ } else if($('body').hasClass('drawer-close')) {
39
+ if (drawer_open_flg == true) {
40
+ if($('.filterConditionBtn')){
41
+ if($('.drawer-menu #itemList_sideNav')){
42
+ // 検索条件フォームの要素を削除
43
+ $('.drawer-menu #itemList_sideNav').remove();
44
+ }
45
+ // 元々の要素を表示
46
+ $('#sp_gnav').css('display', 'block');
47
+ }
48
+ drawer_open_flg = false;
49
+ // 背景のスクロール停止を解除
50
+ window.removeEventListener( 'touchmove' , movefun, { passive: false } );
51
+ }
52
+ }
53
+ });
54
+ ------
55
+
17
56
  .drawer()メソッドを複数回呼べるのであればそうしようと思っていたのですが、
18
57
  どうもできないっぽいので苦肉の策としてこのようなやり方をしています。
19
58