Лабораторная работа № 10. Знакомство с jQuery
Цель: ознакомиться с возможностями jQuery для создания графических и визуальных эффектов и анимации.
Теория
jQuery – это библиотека, которая значительно упрощает и ускоряет написание JavaScript кода. jQuery позволяет создавать анимацию, обработчики событий, значительно облегчает выбор элементов в DOM. Данная библиотека работает со всеми браузерами.
Для jQuery написано огромное количество плагинов, которые позволяют расширить ее возможности еще больше. Плагин (plug-in ) – это модуль к программе, который создается отдельно и, в случае необходимости, может быть подключен к уже работающему приложению.
Чтобы использовать jQuery, необходимо скачать ее с официального сайта (http://jquery.com) и добавить на страницу, вставив в секцию head следующий код:
<script type="text/javascript" src="путь_к_скачанному_файлу/jquery.js"></script>
Также можно использовать jQuery удаленно. Для этого нужно добавить на страницу в секцию head следующий код:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
Код jQuery состоит из последовательно идущих команд. Стандартный синтаксис jQuery команд:
$(селектор).метод();
Знак $ сообщает, что символы, идущие после него, являются jQuery кодом; селектор позволяет выбрать элемент на странице; метод задает действие, которое необходимо совершить над выбранным элементом. Методы в jQuery разделяются на следующие группы:
- методы для манипулирования DOM;
- методы для оформления элементов;
- методы для создания AJAX запросов;
- методы для создания эффектов;
- методы для привязки обработчиков событий.
jQuery можно комбинировать с обычным JavaScript. Если строка начинается с $ – это jQuery, если $ в начале строки отсутствует – это строка JavaScript кода.
Селекторы jQuery
С помощью селекторов можно выбирать элементы на странице для применения к ним определенных действий.
Ниже располагается таблица с различными примерами использования селекторов для выбора желаемых элементов:
Таблица 10.
Пример | Результат |
$("p") | Будут выбраны все элементы p, которые находятся на странице. |
$(".par") | Будут выбраны все элементы на странице с class="par". |
$("#par") | Будет выбран первый элемент на странице с id="par". |
$(this) | Позволяет выбрать текущий HTML элемент. Щелкните на $(this) слева, чтобы посмотреть пример использования данного селектора в онлайн редакторе. |
$("p.par") | Будут выбраны все элементы p на странице с class="par". |
$("p#par") | Будут выбраны все элементы p на странице с id="par". |
$(".par,.header,#heat") | Будут выбраны все элементы на странице со значениями атрибутов class="par", class="header" и id='heat'. |
$("[src]") | Будут выбраны все элементы на странице, имеющие атрибут src. |
$("[src='значение']") | Будут выбраны все элементы со значениям атрибута src="значение". |
$("[src$='.gif']") | Будут выбраны все элементы со значениями атрибута src заканчивающимися на .gif. |
$("div#wrap .par1") | Будут выбраны все элементы с class=par1, которые находятся внутри элементов div с id=wrap. |
$(":input") | Будут выбраны все input элементы на странице. |
$(":тип") | Будут выбраны все input элементы с <input type='тип' />. Например :button выберет все <input type='button' /> элементы, :text выберет все <input type='text' /> элементы и т.д. |
Пример
$(document).ready(function(){
//Установим размер шрифта всех абзацев равным 20 пикселям
$("p").css("fontSize","20px");
//Изменим на зеленый цвет шрифта элемента с id=el2
$("#el2").css("color","green");
//Изменим на красный цвет шрифта элемента с class=el3
$(".el3").css("color","red");
//Сделаем жирным шрифт элементов с id=el2 и class=el3
$("#el2,.el3").css("fontWeight","bold");
//Изменим на синий цвет текста кнопки
$(":input").css("color","blue");
//Установим размер шрифта всех элементов, имеющих атрибут href равным 20 пикселям
$("[href]").css("fontSize","20px");
//Изменим на зеленый цвет ссылки на www.belstu.by
$("[href='http://www.belstu.by/']").css("color","green");
});
Для сокращения размера кода можно соединять команды jQuery в цепочки. Команды в цепочке будут выполняться поочередно слева направо. Например,
<script type='text/javascript'>
//Код без сокращения
$("p").css("color","green");
$("p").css("font-size","30px");
//Сокращенный код
$("p").css("color","green").css("font-size","30px");
</script>
Обработчики событий jQuery
Обработчики событий – это функции, код которых исполняется только после совершения определенных действий.
Обработчики событий присутствовали и в JavaScript, но jQuery облегчает их использование и расширяет их функциональность.
Примеры действий, после которых выполняются обработчики:
- курсор мыши наведен на элемент;
- веб-страница или картинка полностью загружена;
- изменено содержимое поля формы;
- HTML форма отправлена;
- нажата клавиша на клавиатуре.
Общий вид определения обработчиков jQuery:
$(селектор).обработчик_события (function(){код_обработчика_события});Код обработчика mouseover будет выполнен, когда курсор мыши будет наведен на элемент.
Код обработчика mouseout будет выполнен, когда курсор мыши будет выведен за границы элемента. Например,
$(document).ready(function(){$("p").mouseover(function(){$("p").css("color","green")});$("p").mouseout(function(){$("p").css("color","black")});});Код обработчика click будет выполнен после одинарного щелчка мыши на элементе.
Код обработчика dblclick будет выполнен после двойного щелчка мыши на элементе. Например,
$(document).ready(function(){ $("#but1").click(function(){alert("Вы нажали один раз на первую кнопку!");}); $("#but2").dblclick(function(){alert("Вы нажали два раза на вторую кнопку!");});});Код обработчика focus() будет выполнен, когда элемент станет активным.
Код обработчика blur() будет выполнен, когда элемент перестанет быть активным.
Код обработчика change() будет выполнен, при изменении содержимого элемента.
$(document).ready(function(){ $("#el1").focus(function(){$(this).attr("value","")}); $("#el1").blur(function(){$(this).attr("value","Введите ФИО")}); $("#el2").change(function(){ alert("Содержимое данного элемента было изменено.") }); });С помощью jQuery можно также вызывать обработчики событий, привязанные к элементу.
Например: $('#test').blur() вызовет обработчик blur у элемента с id='test':
$(document).ready(function(){// Зададим обработчик события, который будет выводить сообщение при нажатии на кнопку с id=but1 $("#but1").click(function(){alert("Вы нажали на кнопку с id=but1")});// Вызовем обработчик click у элемента с id='but1' $("#but1").click();});Эффекты jQuery
С помощью методов fadeOut(), fadeIn() и fadeTo() можно постепенно скрывать и отображать элементы анимированно.
Синтаксис:
//Позволяет постепенно скрыть выбранный элемент$("селектор").fadeOut(скорость,функция);//Позволяет постепенно отобразить выбранный элемент$("селектор").fadeIn(скорость,функция);//Позволяет постепенно скрыть/отобразить элемент до указанного значения прозрачности$("селектор").fadeTo(скорость,прозрачность,функция);Например,
$(document).ready(function(){ $("#but1").click(function(){$("#par1").fadeOut(3000)}); $("#but2").click(function(){$("#par1").fadeIn(3000)});$("#but3").click(function(){$("#par1").fadeTo(3000,0.3)});$("#but4").click(function(){$("#par1").fadeTo(3000,0.8)});$("#but5").click(function(){$("#par1").fadeOut(3000,function(){ alert("Абзац был полностью скрыт.");}); });});С помощью jQuery методов slideUp, slideDown и slideToggle можно плавно изменять высоту выбранных элементов.
Синтаксис:
//Позволяет изменяет высоту элемента до 0$("селектор").slideUp(скорость,функция);//Позволяет плавно возвратить элементу его изначальную высоту$("селектор").slideDown(скорость,функция);//При первом вызове будет действовать как slideUp, а при втором как slideDown$("селектор").slideToggle(скорость,функция);Например,
$(document).ready(function(){ $("#but1").click(function(){$("#square").slideUp(3000)});$("#but2").click(function(){$("#square").slideDown(3000)});$("#but3").click(function(){$("#square").slideToggle(3000)});$("#but4").click(function(){$("#square").slideUp(3000,function(){ alert("Текст был скрыт");}); });});С помощью метода slideToggle можно создавать на страницах удобные выпадающие меню. Например,
$(document).ready(function(){$("#menu").click(function(){$("#list").slideToggle(2000)}); $("#menu").toggle(function(){ $("#img").attr("src","menudown.gif")},function(){ $("#img").attr("src","menuup.gif") });$("#menu").mouseover(function(){$("#menu").css("background-color","#01939a")});$("#menu").mouseout(function(){$("#menu").css("background-color","#006064")});});Анимация в jQuery
С помощью метода animate() можно создавать полноценную анимацию.
Синтаксис:
$("селектор").animate({стили},скорость,функция_смягчения,функция),где:стили – CSS стили для анимации (к элементу одновременно может быть применено несколько стилей);
скорость – скорость анимации. Можно указать скорость с помощью предопределенных свойств: "slow", "fast", "normal" (медленно, быстро, нормально) или указать скорость в миллисекундах;
функция_смягчения – функция, которая будет отвечать за плавность выполнения анимации;
функция – имя функции, код которой будет выполнен после завершения анимации.
Пример:
$(document).ready(function(){ $("#but1").click(function(){ $("p").animate({fontSize:30},2000); $("p").animate({top:220},2000); $("p").animate({fontSize:"1em"},2000); $("p").animate({left:320},2000); $("p").animate({top:0,left:0},2000); });});Управление стилями в jQuery
jQuery имеет группу различных методов значительно упрощающих оформление элементов. Одним из самых важных методов в этой группе является метод css().
С помощью метода css можно узнавать текущие или устанавливать новые значения свойств оформления элементов.
Синтаксис:
//Узнаем значение указанного CSS свойства выбранного элемента
$("селектор").css("свойство");
//Установим новое значение указанному CSS свойству элемента
$("селектор").css("свойство","значение");
//Установим произвольные значения нескольким CSS свойствам выбранного элемента
$("селектор").css({свойство1:значение1, свойствоN: значениеN});
Например,
$(document).ready(function(){
$("#but1").click(function(){
alert($("#par1").css("color"));
});
$("#but2").click(function(){
$("#par2").css("color","red");
});
$("#but3").click(function(){
$("#par3").css({"font-size":"27px","color":"red","font-family":"Arial"});
});
$("#text1").focus(function(){
$("#text1").val("");
});
$("#but4").click(function(){
$("#par4").css("font-size",$("#text1").val()+"px");
});
});
Задания к лабораторной работе № 10
Задание 1. Выполните задания предыдущих лабораторных работ №8 и № 9 с использованием jQuery.
ГЛАВА 3. XML