русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Прокрутка


Дата добавления: 2015-07-09; просмотров: 1060; Нарушение авторских прав


 

Объект Window содержит также методы, прокручивающие документ внутри окна или фрейма. Метод scrollBy() прокручивает документ на указанное количество пикселов влево или вправо, вверх или вниз, а метод scrollTo() – на абсолютную позицию. Он перемещает документ таким образом, что точка документа с ука_


 

300 Глава 14. Работа с окнами броузера

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

 

В современных броузерах HTML_элементы документа (см. главу 15) имеют такие свойства, как offsetLeft и offsetTop, которые содержат координаты X и Y элемен_ та (в разделе 16.2.3 описываются методы, которые могут использоваться для оп_ ределения координат любого элемента). После того как координаты элемента оп_ ределены, с помощью метода scrollTo()можно прокрутить содержимое окна так, что любой конкретный элемент переместится в левый верхний угол окна.

 

Другой способ прокрутки заключается в обращении к методу focus() элемента документа (например, поля ввода или кнопки), в результате элементу передает_ ся фокус ввода. Как побочный эффект операции передачи фокуса ввода доку_ мент прокручивается так, чтобы элемент с фокусом ввода стал видимым. Обра_ тите внимание: это не означает, что элемент обязательно переместится в левый верхний угол окна, метод лишь гарантирует, что элемент станет видимым.

 

Большинством современных броузеров поддерживается еще один удобный ме_ тод прокрутки: вызов метода scrollIntoView() для любого HTML_элемента делает этот элемент видимым. Данный метод пытается расположить указанный эле_ мент как можно ближе к верхней границе окна, но это, конечно же, не относится к элементам, расположенным достаточно близко к концу документа. Метод scrollIntoView() реализован не так широко, как метод focus(), зато работает со всеми HTML_элементами, а не только с теми, которые способны принимать фо_ кус ввода. Подробнее об этом методе можно прочитать в четвертой части книги.



 

Последний способ прокрутки окна из сценариев заключается в определении якорных элементов в виде тегов <a name=> в тех позициях, к которым может по_ требоваться прокрутить документ. После этого можно использовать имена якор_ ных элементов для записи в свойство hash объекта Location. Например, если в до_ кументе имеется якорный элемент с именем «top» в начале документа, тогда вернуться к началу документа можно будет следующим образом:

 

window.location.hash = "#top";

 

Прием с использованием именованных якорных элементов расширяет возмож_ ности навигации в пределах документа. Кроме того, он делает позицию в доку_ менте видимой в адресной строке броузера, позволяет устанавливать закладки и возвращаться к предыдущей позиции с помощью кнопки Назад, что может быть весьма привлекательным.

 

В то же время загромождение списка истории просмотра именованными якоря_ ми, сгенерированными сценариями, в некоторых ситуациях можно рассматри_ вать как досадную помеху. Чтобы прокрутить документ к именованному якор_ ному элементу (в большинстве броузеров) без создания новой записи в списке ис_ тории, следует использовать метод Location.replace():

 

window.location.replace("#top");

 

Пример использования методов объекта Window


 

Пример 14.4 демонстрирует порядок использования методов open(), close() и moveTo() объекта Window, а также некоторые другие обсуждавшиеся нами прие_ мы работы с окнами. В примере создается новое окно и затем с помощью метода


 

14.4. Методы управления окнами
   

 

setInterval() задаются интервалы повторяющихся вызовов функции, перемеща_ ющей это окно по экрану. Размер экрана определяется с помощью объекта Screen и потом на основе этих данных осуществляется отскок окна при достижении им любого края экрана.

Пример 14.4. Создание и перемещение окна

<script>    
var bounce = {    
x:0, y:0, w:200, h:200, // Положение окна и его размеры
dx:5, dy:5, // Скорость перемещения  
interval: 100, // Частота обновления в миллисекундах
win: null, // Создаваемое окно  
timer: null, // Возвращаемое значение метода setInterval()

 

// Запуск анимации start: function() {

 

// Вначале окно располагается в центре экрана bounce.x = (screen.width _ bounce.w)/2; bounce.y = (screen.height _ bounce.h)/2;

 

// Создать окно, которое будет перемещаться по экрану

// URL javascript: _ простейший способ вывести короткий документ

// Последний аргумент определяет размеры окна

 

bounce.win = window.open('javascript:"<h1>ОТСКОК!</h1>"', "", "left=" + bounce.x + ",top=" + bounce.y + ",width=" + bounce.w + ",height=" +bounce.h+ ",status=yes");

 

// Использовать setInterval() для вызова метода nextFrame() через

// каждый установленный интервал времени. Сохранить возвращаемое

// значение, чтобы иметь возможность остановить анимацию

// вызовом clearInterval().

bounce.timer = setInterval(bounce.nextFrame, bounce.interval);

},

// Остановить анимацию

stop: function() {

clearInterval(bounce.timer); // Прервать работу таймера

if (!bounce.win.closed) bounce.win.close(); // Закрыть окно

},

 

// Отобразить следующий кадр. Вызывается методом setInterval() nextFrame: function() {

 

// Если пользователь закрыл окно – прекратить работу if (bounce.win.closed) {

 

clearInterval(bounce.timer);

return;

}

 

// Имитировать отскок, если была достигнута правая или левая граница if ((bounce.x+bounce.dx > (screen.availWidth _ bounce.w)) ||

(bounce.x+bounce.dx < 0)) bounce.dx = _bounce.dx;

 

// Имитировать отскок, если была достигнута верхняя или нижняя граница if ((bounce.y+bounce.dy > (screen.availHeight _ bounce.h)) ||

(bounce.y+bounce.dy < 0)) bounce.dy = _bounce.dy;


 

302 Глава 14. Работа с окнами броузера

 

// Обновить координаты окна bounce.x += bounce.dx; bounce.y += bounce.dy;

 

// Переместить окно в новую позицию bounce.win.moveTo(bounce.x,bounce.y);

 

// Отобразить текущие координаты в строке состояния bounce.win.defaultStatus = "(" + bounce.x + "," + bounce.y + ")";

 

}

}

</script>

 

<button onclick="bounce.start()">Старт</button> <button onclick="bounce.stop()">Стоп</button>

 



<== предыдущая лекция | следующая лекция ==>
Геометрия окна | Простые диалоговые окна


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.