ウィンドウの幅が 768px 未満の場合、要素をオフ キャンバス メニューに移動しようとしています。
これまでのところ、私はこれを持っています:
<script>
window.onresize = move_sidebar(event);
window.onload = move_sidebar(event);
function move_sidebar(event) {
if(window.outerWidth > 768) {
return;
} else {
console.log('resized or loaded');
document.getElementById('offcanvas-menu').appendChild(document.getElementById('sidebar-content'));
}
}
</script>
ウィンドウが読み込まれると正常に動作し、コンソール ログが表示され、要素が移動されますが、ウィンドウのサイズを変更してもイベントは発生しません。
私がしない限り:
window.onresize = function(event) { console.log('resizing'); };
これにより、ウィンドウのサイズが変更されるたびにログが記録されますが、2 つに違いがある理由がわかりません。
また、要素が offcanvas-menu 要素にのみ存在する限り、幅が 768px を超える場合は要素を元の場所に戻す必要があります。
何か案は?
編集:
私は次のコードでこれを修正しました:
<script>
window.onresize = move_sidebar;
window.onload = move_sidebar;
function move_sidebar(event) {
ele = document.getElementById('sidebar-content');
if(window.outerWidth > 768) {
if(ele.parentNode.id == 'offcanvas-menu') {
document.getElementById('sidebar').appendChild(document.getElementById('sidebar-content'));
}
return;
} else {
document.getElementById('offcanvas-menu').appendChild(ele);
}
}
</script>