Обнаружение горизонтального переполнения div с помощью JavaScript?

У меня есть DIV, в котором много дочерних DIV. То, что я хочу, похоже на вкладки Firefox, когда у вас слишком много открытых вкладок или основная ширина DIV слишком мала, интерфейс обнаружит переполнение и покажет кнопку справа, чтобы вывести список всех скрытых вкладок. Проблема в том, что я понятия не имею, где вообще начать искать помощи.

3 ответа

Решение

Ваш основной DIV настроен на overflow:hidden?

Если это так, вы можете проверить необходимость переполнения, увеличив scrollLeft свойство, а затем запрашивает его, чтобы увидеть, если он изменился:

function containsTooMuch(el) {
    var original = el.scrollLeft++;
    return el.scrollLeft-- > original;
}

Googling выявляет это:

http://knitinr.blogspot.com/2008/08/javascript-warn-if-overflow.html

выглядит красиво и не зависит от структуры.

Но, возможно, кто-то придумает решение, которое работает с меньшим количеством кода.

О, и угадайте, какой популярный сайт сообщества программистов испортит результаты Googe для

javascript detect overflow 

:)

Мой подход заключается в том, чтобы работать с тем, как добавляются новые DIV. Какое бы событие ни вызвало это, я бы добавил обработчик в документ, который запускает скрипт, который проверяет размер различных DIV, чтобы убедиться, что они соответствуют вашим требованиям. Если они слишком велики (или слишком много), то вы скрываете некоторые из них и добавляете свою кнопку с ее логикой отображения.

Другие вопросы по тегам