Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 33

Создание различных стилей мобильной версии сайта для смартфонов с различными ОС (Android, Iphone)

09.11.2019, 12:04. Показов 735. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть мобильная версия сайта. Есть два блока div.

Задача: Необходимо сделать так, чтобы при заходе со смартфона с ОС Iphone, был виден блок div №1, а блок div №2 - был скрыт

При заходе со смартфона с ОС Android, был виден блок div №2, а блок div №1 - был скрыт.

Прилагаю код, который у меня получился:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
document.addEventListener('DOMContentLoaded', function () {
 
var block1 = document.getElementsByClassName('block1');
var block2 = document.getElementsByClassName('block2');
 
for(var i=0;i<block1.length && i<block2.length;i++){
if (/iPhone/i.test(navigator.userAgent)) {
block1[i].style.display = 'block';
block2[i].style.display = 'none';
 
}
else if(/Android/i.test(navigator.userAgent)) {
block1[i].style.display = 'none';
block2[i].style.display = 'block';
}
 
}
 
});
Данный скрипт работает только на главной странице мобильной версии сайта.

Скрипт работает, но есть "косячок". При переходе на сайт - все отображается как надо. Затем перехожу на какую-либо внутреннюю страницу данного сайта, и сразу же нажимаю кнопку "вернуться назад". В результате этого видны оба блока div, а этого быть не должно. Если нажать в браузере кнопку "Reload" - то все отображается как надо


Как переделать данный скрипт так, чтобы при заходе с любого из вышеперечисленных устройств отображался бы какой-то один блок, а не все вместе?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2019, 12:04
Ответы с готовыми решениями:

Создание мобильной версии сайта
Подскажите как реализовать? При помощи @media handheld (screen) не получается. Добавлено через 1 час 10 минут Немного разобрался...

Табы для мобильной версии сайта
Здравствуйте, уважаемые форумчане! Сейчас работаю над одним сайтом, и встал вопрос: как лучше сделать табы для мобильной версии сайта?...

Шаблон для мобильной версии сайта
В интернете можно найти много html-шаблонов для сайта, однако как оказалось для мобильных версий это проблематично...Дело в том что я...

6
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.11.2019, 12:38
Oliviya Vein, можно по-умолчанию с помощью css скрыть блоки и после определения браузера показывать.
0
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 33
09.11.2019, 17:58  [ТС]
А как определить браузер при помощи css? js использовать, как показала практика, дохлый номер. скрипт срабатывает не при всех условиях

Добавлено через 31 минуту
Перешерстил интернет, по ходу вобще никто с таким не сталкивался. Поразительно. На php попробую
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.11.2019, 18:25
Oliviya Vein,
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      .block1,
      .block2 {
        display: none;
      }
    </style>
  </head>
  <body>
    <div class="block1">
      .block1
    </div>
    <div class="block2">
      .block2
    </div>
 
    <script>
      function showBlocks(selector) {
        var blocks = document.querySelectorAll(selector);
        for (var i = 0; i < blocks.length; i++) {
          blocks[i].style.display = "block";
        }
      }
 
      var list = [
        {
          regexp: /iPhone/i,
          selector: ".block1"
        },
        {
          regexp: /Android/i,
          selector: ".block2"
        }
      ];
 
      list.forEach(item => {
        if (item.regexp.test(navigator.userAgent)) {
          showBlocks(item.selector);
        }
      });
    </script>
  </body>
</html>
0
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 33
09.11.2019, 18:51  [ТС]
нет, к сожалению, проблема та же осталась. Дело не в правильности написания кода. Это баг или что я просто понять не могу.

Поробовал на других смартфонах с Android и с Ios, картина та же. По началу работает, а при переходе на другую страницу и назад - ахтунг
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.11.2019, 19:00
Цитата Сообщение от Oliviya Vein Посмотреть сообщение
Дело не в правильности написания кода.
Oliviya Vein, в вашем примере как минимум 1 ошибка. Скиньте ссылку на сайт.
0
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 33
09.11.2019, 19:25  [ТС]
где именно ошибка? такое подозрение, что нужно копать в сторону cookies
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2019, 19:25
Помогаю со студенческими работами здесь

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

Меню для мобильной версии сайта
Ребят, подскажите! Как сделать меню ( выпадающее ) то что на сайте mybootstrap.ru ( в адаптивное дизайне ) при уменьшении окна браузера?

Звездный рейтинг для мобильной версии сайта
Вариантов звездных рейтингов через Ajax для десктопа много. Но столкнулся с проблемой неудобства выставления рейтинга, если вместо мышки...

Приложение для iOS из мобильной версии сайта
Доброго дня уважаемые пользователи, скажите возможно ли из сайта сделать приложение как на платформе Android? Если нет то с помощью чего...

Меню для сайта как в мобильной версии
Добрый день. Обыскал весь интернет, НЕ МОГУ НАЙТИ..Есть ли исходник простого меню на jquery, как для мобильной версии, только для полной....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru