прокручиваемые регионы HTML - PullRequest
1 голос
/ 18 февраля 2010

Какие есть варианты для создания областей списков с возможностью прокрутки в HTML?

То есть для создания областей, подобных спискам?

Является ли DIV с переполнением: прокрутка лучшим подходом?

Или iframe лучше?

Есть ли более лучшие новые способы сделать это?

Хотелось бы показать область HTML, которая обновляется списком объектов в ответ на "push" изменения изсервер, использующий подход AJAX / Comet, и поддерживает позицию прокрутки пользователя при обновлении списка.Можно ли это сделать без списка «прыжков», и если да, то как?

РЕДАКТИРОВАТЬ

Я сделал базовое решение DIV сейчас.В основном использование overflow: auto (в отличие от overflow: scroll) кажется хорошей идеей для статических списков и обновленных списков «все в одном».

Еще одна неделя, и я считаю, что получуПерейдем к рассмотрению некоторых идей в области анимации, о которых говорит пользователь egarcia, и затем я поставлю галочку.

Я создаю прототипы в текущих версиях Firefox (для Windows XP и Linux) и Internet Explorer (в Windows XP) на данный момент.

Работа над DIV, которую я делаю, является лишь небольшой частью более крупного проекта по ведению блогов.

Ответы [ 3 ]

1 голос
/ 18 февраля 2010

DIV с переполнением: прокрутка ваш лучший вариант. Поместите свой ul в него, и элементы li должны быть заполнены внутри ul.

Я не уверен, что вы подразумеваете под "скачком по списку". Если вы имеете в виду, что вы хотите, чтобы список «плавно рос», а не внезапно появлялось много элементов, то вы должны использовать javascript.

Самое простое решение - применить эффект "постепенного появления" к новым предметам. Prototype.js и Jquery имеют встроенные эффекты «постепенного появления». Это все равно сделает вашу полосу прокрутки «прыгучей» - она ​​очень быстро изменит размер, когда появятся новые элементы.

Более сложный, но немного более привлекательный вариант - заставить AJAX обновлять данные на скрытом элементе div. Когда данные обновляются, вы используете этот обратный вызов, чтобы плавно «обновить» «видимый» div - либо добавив все элементы li один за другим, либо используя другой внутренний div, который плавно растет - но вам придется рассчитать высоту в JavaScript

1 голос
/ 18 февраля 2010

Я думаю, вы должны иметь возможность получить свойство scrollTop элемента div, входящего в ваш вызов AJAX, а затем установить его в функции обратного вызова, чтобы полосы прокрутки элемента div перемещались так, как вам бы хотелось.См. Документ Mozilla об этом свойстве: https://developer.mozilla.org/En/DOM/Element.scrollTop. (iFrame выглядит как излишний, div должен работать.)

1 голос
/ 18 февраля 2010

Из того, что я знаю, div - это надежное решение для такой проблемы.Вы никогда не должны использовать iframe (почти никогда).

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