Может ли JavaScript обнаруживать, когда полосы прокрутки недоступны (например, в мобильных браузерах)? - PullRequest
1 голос
/ 27 июля 2010

У меня есть прокручиваемый виджет Thingy ™ на основе javascript.Он создает фиксированную высоту div и дает ей overflow: auto.

Увы, в мобильном Safari (и других мобильных браузерах) overflow: auto; не показывает полосу прокрутки.Любой контент ниже «сгиба» может быть найден только случайно.

Есть ли способ обнаружить это в javascript, без , не прибегая к обнаружению браузера?например,

if (there is a scrollbar) {
    /* give me a fixed height and a scrollbar */
} else {
    /* Do something more suited to this situation */
}

1 Ответ

3 голосов
/ 27 июля 2010

Я могу думать только о том, чтобы прибегнуть к грязным трюкам:

  1. Создать поле 50x50
  2. Установить поле на overflow: auto
  3. Флуд с текстом
  4. Считать внутренний размер блока: если 50x50, что-то пошло не так
  5. Сохранить результат в переменной и уничтожить блок

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...