Мобильный JavaScript не работает

  • Автор темы Ronin2
  • 43
  • Обновлено
  • 17, May 2024
  • #1
Привет, я только начал делать свой сайт удобным для мобильных устройств, но столкнулся с препятствием.

Мой код Javascript здесь не работает на мобильных устройствах, но идеально подходит для настольных компьютеров.

В представлении устройства в Chrome все работает отлично, но на мобильных телефонах «document.getElementById(»side»).style = 'top:' + topheight + 'px;';»не работает.

Я указал значения ширины и высоты, они отлично вернули свои значения.

Я просто хочу расположить элемент «z-index:1» так, чтобы он не перекрывал верхние элементы.

Я проверил этот код на двух телефонах шириной 360 пикселей и 320 пикселей. Изображение того, как я хочу (режим устройства инструментов разработчика Google) Изображение «Болезненной правды» (мобильное устройство, 640x360 пикселей)

ПРИМЕЧАНИЕ: Я ОПУСКАЛ НЕКОТОРЫЕ СТРОКИ КОДА, КОТОРЫЕ НЕ ВАЖНЫ ДЛЯ ПОВЫШЕНИЯ ЧИТАЕМОСТИ КОДА, ПОТОМУ ЧТО Я ГОВОРЮ ЗДЕСЬ О >50 СТРОЧКАХ КОДА.
----------------------------------------- ВОТ КОД ---- --------------------------------
ЯВАСКРИПТ


вар ширина = screen.width;

предупреждение (ширина);

если(ширина <320){

window.location.href = "/root/nomobile.php";}

var topheight = document.getElementById('top').offsetHeight;

if (document.getElementById("ul") != не определено) {

ширина = document.getElementById("ul").offsetWidth;}

если (ширина экрана > 319) {

document.getElementById("side").style = 'top:' + topheight + 'px;';}

/* Какой-то другой код, не имеющий отношения к вопросу */

HTML /Приветственное сообщение при входе в систему/ /Навигационное меню/ /Содержание/

Ronin2


Рег
03 Feb, 2014

Тем
1

Постов
2

Баллов
12
  • 20, May 2024
  • #2
Выполните поиск в Google еще раз. Например: https://davidwalsh.name/device-state-detection-css-media-queries-javascript

или проследуйте за подписью Гэри, чтобы узнать об этом больше. Механизм рендеринга CSS потребляет меньше энергии, чем движок JavaScript на мобильных устройствах, знаете ли вы? Так помогите спасти землю.
 

Серж2


Рег
12 Feb, 2013

Тем
0

Постов
3

Баллов
3
  • 04, Jun 2024
  • #3
Почему вы используете JavaScript для выполнения работы CSS? Я не присматривался внимательно, но ваше описание проблемы говорит мне, что решение CSS само по себе простое. Практическое правило? Никогда не используйте JavaScript для базовой функциональности.

Это расширение, а не ядро. ваше здоровье, Гэри
 

consalting


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
  • 08, Jun 2024
  • #4
Нет, это не так.

Ваш текущий дизайн/макет может быть и таким, но это просто означает, что ваш макет/дизайн отстой.

Обычно нет никакой причины выполнять позиционирование с помощью JS для обычных элементов страницы с предопределенными пропорциями.

Даже гибкие макеты с динамическими пропорциями в 99% случаев можно создать с помощью чистого CSS.

Хотя JS может быть полезен для замены классов и тому подобного на лету или расчета конкретных значений для подвижных элементов, я не вижу причин, по которым то, что вы объяснили, должно оправдывать использование JS.

Вероятно, вам следует переосмыслить свой код или дать нам ссылку на соответствующий сайт, чтобы мы могли посмотреть, что с ним можно сделать.
 

valkor7


Рег
29 Nov, 2011

Тем
1

Постов
4

Баллов
14
  • 10, Jun 2024
  • #5
Как я упоминал ранее, этот код используется для адаптивного дизайна. Значение topheight будет меняться в зависимости от разрешения устройства. Поскольку у CSS нет метода получения ширины экрана, я застрял на js.
 

yoKep1


Рег
27 Jun, 2014

Тем
2

Постов
4

Баллов
24
Тем
49554
Комментарии
57426
Опыт
552966

Интересно