Хотите верьте, хотите нет. Написал как Вы предложили:
myFnc = function(){
var div = document.getElementById("nav");
if (window.innerWidth <= 320) {
div.style.width = window.innerHeight + "px";
}
} //здесь нужна точка с запятой?
window.onload = myFnc();
window.onresize = myFnc();
Всё работало, и при подключении скрипта в head и из внешнего файла, при чём так:
window.onload = window.onresize = myFnc(); тоже работало.
Потом решил попробовать перестроить дизайн и изменил ширину экрана для начала трансформации nav с <= 320 на <= 600 и уже никак не работает, не из head, не из внешнего файла. Вернул на <= 320, хотя это уже шаманство, не заработало. В итоге работает только так:
window.onload = function(){
var div = document.getElementById("nav");
if (window.innerWidth <= 320) {
div.style.width = window.innerHeight + "px";
}
}
window.onresize = function(){
var div = document.getElementById("nav");
if (window.innerWidth <= 320) {
div.style.width = window.innerHeight + "px";
}
}
Как же с этим быть, если в скриптах повторятся? Редактор и меня phpDesigner8 в связке с Denver3.
Что же касается способа удаления стилей навешанных через js:
if (window.innerWidth > 320) {
div.style.width = window.innerHeight + "px";
}
else {
div.removeAttribute('style');
}
то при увеличении ширины окна nav это срабатывает, но если отыграть назад, то nav уже не растягивается на всю высоту окна, причём то же и при ресайзе окна по высоте. Перезагрузка страницы не помогает, выходит, что вариант с удалением атрибута
'style' вообще блокирует работу скрипта. Перепробовал все варианты:
div.removeAttribute('style');
div.removeAttribute('style.width');
div.removeAttribute('width');
div.removeAttribute('window.innerHeight);