| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Автоматический скроллинг внутри DIV'а (без клика) |
| Автор: Rayled 1.5.2010, 21:22 | ||
| Здравствуйте! С JavaScript я практически не знаком (начал потихоньку изучать 4-е дня назад). Поэтому нужна помощь. Значит так. Есть таблица. Внутри одной из колонок есть DIV, а внутри DIV'а большой (скролл неизбежен) ненумерованный список ссылок ведущих на другие страницы сайта. Высота дива фиксированная - 200px, а ширина зависит от ширины "резиновой" колонки. На открывшейся по любой ссылке странице, строка списка, по которой был переход, отображается уже не ссылкой, а текстом. Задача. Сделать автоматический скроллинг "текстового элемента", на открывшейся странице, к центру (т.е. примерно по 100px сверху и снизу, по вертикали) и левой стороне (по горизонтали) видимой части DIV'а, чтобы, значит, удобства создать для юзера.
Конечно хотелось бы кроссбраузерное решение и именно с указанным Доктайпом. Да, и еще. Я нашел решение, используя библиотеки JQuery, но хотелось бы без них. Т.к. там скроллит к верхней части DIV'а, а не к центру. Заранее спасибо, ребята! |
| Автор: Amphiluke 1.5.2010, 22:21 | ||
Ну, как-то в таком духе, что-ль.
|
| Автор: Amphiluke 1.5.2010, 22:37 | ||
Хотя нет.
|
| Автор: Rayled 2.5.2010, 10:55 | ||||
| Amphiluke, спасибо огромное!!! Все работает. А скрипт-то какой маленький, я думал минимум на страницу будет... Как я уже говорил с JavaScript я не знаком практически, но учусь потихоньку. Поэтому посмотрите пожалуйста - правильно я его разобрал?
И еще. Я вот тут его чуть изменил.
Скажите, не повлияет-ли это на кроссбраузерность, выдачу результата или еще какие "подводные камни"? И еще вопросик. А если вместо "offsetHeight" использовать "clientHeight". Или все-равно что использовать? А-то я их разницу не уловил. Заранее благодарю! |
| Автор: Amphiluke 2.5.2010, 12:45 |
Если контейнер имеет какие-то бордюры, рамки, то да, лучше, по-видимому, использовать clientHeight. Клиентская область не включает внешние отступы, рамку, полосы прокрутки. Вот здесь можно посмотреть подробности. https://developer.mozilla.org/en/DOM/element.clientHeight https://developer.mozilla.org/en/DOM/element.offsetHeight Добавлено через 4 минуты и 48 секунд А в остальном, вроде все вы правильно изложили. Да, и сдвиг целого числа на один разряд вправо эквивалентен делению на 2. Просто у меня подсознательное желание не смешивать целые и вещественные числа, хотя Javascript отслеживает это. В других языках программирования это могло быть ошибкой (я имею в виду присваивание целочисленному атрибуту результат деления операцией «/»). |
| Автор: Rayled 2.5.2010, 14:29 |
Ну что ж, тогда будем делать побитово, будем привыкать. Еще раз спасибо за помощь! |