※ただまだいっこしか読み込ませ変えられませんから。
熟読しな!
ついに出来た、というか判明
上記window.matchMediaは
リロードすると変わることが判明
つまり 読み込み直せば その処理がみれる。
リアルにウインドウサイズの拡大縮小で変更したい場合は
addListenerで対応するらしいがながくなるので未処理
最後にメモします
まずは
window.matchMedia
<script type="text/javascript"> jQuery(document).ready(function($) { //PC環境の場合 if (window.matchMedia( '(min-width: 768px)' ).matches) { $.ajax({ url: '<?php echo get_stylesheet_directory_uri(); ?>/d/js/side-fixed-comment.js', dataType: 'script', cache: false }); //モバイル環境の場合 } else { $.ajax({ url: '', dataType: 'script', cache: false }); }; }); </script>
そもそもそんあ処理が必要なのは
ひっついてくるサイドバーの処理が
モバイルで効くと
モバイルはサイドバーは@メディアでcssを変更して
デザインを変えているので
処理がダブって不都合なため
ウインドウサイズが狭まった場合 つまりスマホでは ひっつくサイドバーを実行させたくない。
そのため
上記処理
裏話では
実際読み込ますJSを変更するこーどなため
直接jsの最後に
実際の処理を書き込んだ
/*ウインドウサイズでスプリクトを読み込ますか分岐しているので(window.matchMediaで)そのためこのJSの最後に無理やり処理を追加 下記は レスポンシブで ひっつきサイドバーを維持するための処理*/ $(window).on('load resize', function(){ var w = ($(window).width() -56) * 0.24 ; $('#d_sidenavi_in').width(w); });
こんな感じ
そんで ウインドウリロードで実行が変わるので
デザインの確認もし安い
リアルタイムに変更したい場合は
http://memocarilog.info/jquery/6500#sample
このページを理解して組み込めばできなくはなさそうだが。。
古いブラウザ位のばあい
<script src="matchMedia.js"></script> <script src="matchMedia.addListener.js"></script>
こいつが必要らしい。
<h1>jQuery - matchMedia.matches</h1> <p id="test1">matchMedia で表示を変える。</p> <hr> <h1>JavaScript - matchMedia.matches</h1> <p id="test2">matchMedia で表示を変える。</p> <hr> <h1>JavaScript - matchMedia.addListener</h1> <p id="test3">matchMedia で表示を変える。</p>
<script src="matchMedia.js"></script> <script src="matchMedia.addListener.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script> // jQuery - matchMedia.matches ======================== $(function(){ if(window.matchMedia('(max-width:2000px)').matches) $('#test1').text('2000px以下です。') ; $(window).on('resize', function() { if(window.matchMedia('(max-width:800px)').matches) { $('#test1').text('モバイルサイズ時(800px以下)です。') ; } else { $('#test1').text('PCサイズ時(800px以上)です。') ; } }); }); // JavaScript - matchMedia.matches ======================== window.addEventListener('load', function(){ if (window.matchMedia("(max-width:2000px)").matches){ document.getElementById("test2").innerHTML = "2000px以下です。"; } }, false); window.addEventListener('resize', function(){ if (window.matchMedia("(max-width:800px)").matches) { document.getElementById("test2").innerHTML = "モバイルサイズ時(800px以下)です。"; } else { document.getElementById("test2").innerHTML = "PCサイズ時(800px以上)です。"; } }, false); // JavaScript - matchMedia.addListener ======================== window.matchMedia("(max-width:800px)").addListener( myFunc ); function myFunc(){ document.getElementById("test3").innerHTML = "モバイルサイズ時(800px以下)です。"; if (window.matchMedia("(min-width:800px)").matches) { document.getElementById("test3").innerHTML = "PCサイズ時(800px以上)です。"; } } </script>