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

回答編集履歴

1

コード追記

2015/03/30 12:08

投稿

bigfatrat
bigfatrat

スコア187

answer CHANGED
@@ -4,4 +4,56 @@
4
4
 
5
5
  resizeイベントは無数に呼ばれることがあるのでsettimeout等で監視する
6
6
 
7
- PCがあるときに未解決だったら詳しく書きます
7
+ PCがあるときに未解決だったら詳しく書きます
8
+
9
+
10
+ 追記します
11
+ ```lang-<ここに言語を入力>
12
+ var timer = false;
13
+ ;(function ($) {
14
+ $.fn.switchingPlugins = function (custom) {
15
+
16
+ //起動時のウィンドウサイズを取得
17
+ var width = $(window).width(); // ★jQueryで取得するのが無難
18
+
19
+ options = $.extend(false, {// ★trueだと第2引数が上書きされてしまうので、
20
+ switchingSize: 480, // 今回の処理では問題無いが、特に理由が無ければfalseを使う癖をつけた方が良い
21
+ //events
22
+ smallPlugin: function(){},
23
+ bigPlugin: function(){},
24
+ smallPluginDelete: function(){},
25
+ bigPluginDelete: function(){}
26
+ }, custom);
27
+
28
+ /* ロード時に実行する */
29
+ /*
30
+ if(width <= options.switchingSize){
31
+ options.smallPlugin();
32
+ }
33
+ else{
34
+ options.bigPlugin();
35
+ console.log(options.switchingSize);
36
+ }*/
37
+
38
+
39
+ /* リサイズ時に実行する */
40
+ $(window).on('resize', function(){
41
+
42
+ width = window.innerWidth;
43
+ console.log(width);
44
+ console.log(options.switchingSize);
45
+
46
+ if(width < options.switchingSize){
47
+ console.log("bigPlugin delete ");
48
+ console.log("smallPlugins add");
49
+ }
50
+ else{
51
+ console.log("smallPlugin delete");
52
+ console.log("bigPlugin add");
53
+ }
54
+ }).trigger("resize");// ★イベントで定義した内容をその場で一回呼び出すとコード削減できる
55
+
56
+ };
57
+
58
+ }($));
59
+ ```