Выяснение, если переполнение: авто было бы вызвано на div - PullRequest
4 голосов
/ 25 мая 2010

// Главное редактирование, извините в постели с болями в спине, испорченный пост

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

Решение с прокруткой применяется к элементам div с overflow:hidden и использует jQuery's scrollTo(). Это набор кнопок сверху и снизу, которые управляют перемещением контента.

Итак, это женат в местах с их CMS. То, что я пока не смог отсортировать, это как скрыть пользовательский интерфейс прокрутки, когда overflow:auto не был бы вызван контентом CMS и кнопки не нужны.

В div установлены высоты и ширины. Могу ли я обнаружить скрытый контент? Или измерить высоту содержимого div?

Есть идеи?

Ответы [ 5 ]

3 голосов
/ 26 мая 2010

То есть вы хотите получить высоту скрытого элемента? Я нашел это сообщение возможно, это то, что вы ищете.

Используется jQuery, но концепция та же. Надеюсь, это поможет!

Метрополис

1 голос
/ 25 мая 2010

Я надеюсь, что я ошибаюсь, но вам нужно будет эмулировать переполнение, устанавливая свойства, используя некоторые js, тогда вы можете получить эти значения, используя getAttribute или ваш собственный метод. В противном случае, если вы установите для переполнения значение auto, браузер будет выполнять свои собственные функции, и единственным значением, возвращаемым в качестве свойства переполнения, будет строка типа 'auto'.

1 голос
/ 26 мая 2010

Что вы подразумеваете под CMS?

Да, вы можете получить доступ к высоте содержимого div, поскольку вы можете получить доступ ко всем дочерним элементам div в JavaScript. (Извините, что не включил пример. Я давно не работал с чистым JS, поэтому я не хочу указывать вам неправильное направление.) Делая это, вы сможете «обнаружить скрытый контент», а затем сможете делать то, что действительно хотите.

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

1 голос
/ 25 мая 2010

Можете ли вы объяснить это лучше? Вы хотите скрыть полосу прокрутки элемента div, установленного на переполнение: авто, когда у него недостаточно текста для переполнения? Браузер сделает это за вас.

Вы хотите скрыть полосу прокрутки элемента div, установленного на автоматическое переполнение, когда оно прокручивается до некоторой точки, но вы не смотрите на это или зависаете или что-то еще? Это будет довольно сложно.

Если вы хотите узнать, имеет ли div значение overflow, то просто сделайте:

object.style.overflow

и он даст вам строку.

возможные значения:

visible
hidden
scroll
auto
inherit

вы можете установить переполнение таким же образом

http://www.w3schools.com/css/pr_pos_overflow.asp

Из того, что я теперь понимаю, у вас есть эти div с скрытой прокруткой, но у некоторых графических дизайнеров есть полоса прокрутки, и вы используете scrollTo для фактической прокрутки. НО ваша проблема заключается в том, что у вас недостаточно данных для того, чтобы на самом деле нужна полоса прокрутки, но ваши графические данные все равно отображаются, поэтому вы хотите их скрыть.

поэтому реальный вопрос здесь в том, как вы получаете высоту контента? Вам нужно свойство offsetHeight, но я уверен, что оно все еще IE.

0 голосов
/ 26 мая 2010

Используя jQuery height () для div, содержащего содержимое, я могу по мере необходимости показывать / скрывать пользовательский интерфейс в зависимости от того, превышает ли высота CSS div для переполнения: hidden.

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