メディア クエリである限り、幅の変更を検出するために JavaScript を使用しています。HTMLを移動する必要があるため、両方が必要です。発生する時間が同じではないことを除いて、どちらも機能します。スクロールバーがそれらの1つに含まれていると推測しますが、幅がブラウザー間で同じではないため、15pxのスクロールバーを想定するのはばかげています. より良いアプローチはありますか?
私のメディアクエリは次のようにアクティブになります:
<link rel="stylesheet" href="mobile.css" media="screen and (max-width: 767px)" />
そして使用:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
私のJSは次のようになりますが:
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
var pause = 100;
$(window).resize(function() {
delay(function() {
var width = $(window).width();
if ( width >= 768 ) {
if (window.myDevice != 'desktop' || window.myDevice === undefined) {
window.myDevice = 'desktop';
$('#head').prepend($('#branding'));
}
} else if ( width <= 767 ) {
if (window.myDevice != 'mobile' || window.myDevice === undefined) {
window.myDevice = 'mobile';
$('#content').prepend($('#branding'));
}
}
}, pause );
});
ありがとう!