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

回答編集履歴

7

a

2018/04/07 00:16

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -1,11 +1,13 @@
1
1
  > ある横幅のサイズウインドウになったらcssのスタイルを変更したいな
2
2
 
3
- CSSのメディアクエリでviewportの横幅に応じて、スタイルを変えるのが良いと思いますが、JavaScriptの勉強ということでしたので、以下はJavaScriptで対応する一例です。(jQuery置き換えてください)
3
+ CSSのメディアクエリでviewportの横幅に応じて、スタイルを変えるのが良いと思いますが、JavaScriptの勉強ということでしたので、以下はJavaScriptで対応する一例です。(jQuery置き換えてください)
4
4
 
5
5
  window幅の変更に応じて何らかの処理を行いたい場合は、windowサイズの変更をwindow.resizeイベントを監視する必要があります。
6
6
 
7
7
  また、windowのリサイズイベントはかなりの高頻度で発火してしまうため、windowサイズの変更に応じて何らかの処理を実行したい場合は、発生するイベントを間引いてあげます。以下のコードではLodashというライブラリのthrottleメソッドを利用して、発生するイベントを間引いています。
8
8
 
9
+ Lodashを利用するのであれば、jQueryのようにライブラリを読み込んであげる必要がありますので、読み込み方を調べて使ってみてください。
10
+
9
11
  ```HTML
10
12
  <div id='container' class='small'>Hello World</div>
11
13
 

6

a

2018/04/07 00:16

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  window幅の変更に応じて何らかの処理を行いたい場合は、windowサイズの変更をwindow.resizeイベントを監視する必要があります。
6
6
 
7
+ また、windowのリサイズイベントはかなりの高頻度で発火してしまうため、windowサイズの変更に応じて何らかの処理を実行したい場合は、発生するイベントを間引いてあげます。以下のコードではLodashというライブラリのthrottleメソッドを利用して、発生するイベントを間引いています。
7
8
 
8
9
  ```HTML
9
10
  <div id='container' class='small'>Hello World</div>

5

a

2018/04/07 00:14

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
  ```JavaScript
25
- var div = document.getElementById('container');
25
+ var container = document.getElementById('container');
26
26
 
27
27
  function handleWindowResize(event) {
28
28
 
@@ -31,9 +31,9 @@
31
31
  console.log('window is resized!');
32
32
 
33
33
  if (windowOuterWidth >= 767) {
34
- div.className = 'big';
34
+ container.className = 'big';
35
35
  } else {
36
- div.className = 'small';
36
+ container.className = 'small';
37
37
  }
38
38
 
39
39
  }

4

a

2018/04/07 00:07

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -1,8 +1,10 @@
1
1
  > ある横幅のサイズウインドウになったらcssのスタイルを変更したいな
2
2
 
3
- CSSのメディアクエリでviewportの横幅に応じて、スタイルを変えるのが良いと思いますが、JavaScriptの勉強ということでしたので、以下はJavaScriptで対応する一例です。
3
+ CSSのメディアクエリでviewportの横幅に応じて、スタイルを変えるのが良いと思いますが、JavaScriptの勉強ということでしたので、以下はJavaScriptで対応する一例です。(jQueryの置き換えてください)
4
4
 
5
+ window幅の変更に応じて何らかの処理を行いたい場合は、windowサイズの変更をwindow.resizeイベントを監視する必要があります。
5
6
 
7
+
6
8
  ```HTML
7
9
  <div id='container' class='small'>Hello World</div>
8
10
 

3

a

2018/04/07 00:06

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -1,3 +1,8 @@
1
+ > ある横幅のサイズウインドウになったらcssのスタイルを変更したいな
2
+
3
+ CSSのメディアクエリでviewportの横幅に応じて、スタイルを変えるのが良いと思いますが、JavaScriptの勉強ということでしたので、以下はJavaScriptで対応する一例です。
4
+
5
+
1
6
  ```HTML
2
7
  <div id='container' class='small'>Hello World</div>
3
8
 

2

a

2018/04/07 00:03

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -31,10 +31,11 @@
31
31
 
32
32
  }
33
33
 
34
- window.addEventListener('resize', _.debounce(handleWindowResize, 100));
34
+ window.addEventListener('resize', _.throttle(handleWindowResize, 100));
35
35
  ```
36
36
 
37
37
  # 参考
38
38
  [resize](https://developer.mozilla.org/en-US/docs/Web/Events/resize)
39
39
  [jQuery - resize()](https://api.jquery.com/resize/)
40
- [Lodash](https://lodash.com/)
40
+ [Lodash](https://lodash.com/)
41
+ [lodashの_.throttleと_.debounceの使用例 - Qiita](https://qiita.com/akifo/items/4d715929934a458fb189)

1

a

2018/04/07 00:00

投稿

HayatoKamono
HayatoKamono

スコア2415

answer CHANGED
@@ -32,4 +32,9 @@
32
32
  }
33
33
 
34
34
  window.addEventListener('resize', _.debounce(handleWindowResize, 100));
35
- ```
35
+ ```
36
+
37
+ # 参考
38
+ [resize](https://developer.mozilla.org/en-US/docs/Web/Events/resize)
39
+ [jQuery - resize()](https://api.jquery.com/resize/)
40
+ [Lodash](https://lodash.com/)