css, html, php, javascript, jQuery, ajax … – решения, примеры, рецепты
24 Июл
Неплохими темпами развивается библиотека jQuery. Разработчики уделили внимание визуальным эффектам пользовательского интерфейса. В результате мы получили файл effects.core.js, который сам по себе обладает необходимой функциональностью лучших расширений для jQuery, таких как Color Animation, Class Transformation и Advansed Easing и, кроме того, целый набор различных визуальных эффектов, которые могут быть использованы как автономно, так и с show, hide, toggle.
Итак, давайте для начала посмотрим, как могут быть использованы эффекты, а далее я приведу примеры всех доступных эффектов.
Возвращает: jQuery
Использует эффект для элемента, чтобы показать этот элемент, если первый аргумент является строкой с названием соответствующего эффекта.
В примере применяется эффект slide чтобы показать элемент div, если совершен клик на параграфе.
$("p").click(function () {
$("div").show("slide", {}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
effect – String – Название эффекта.
options – Hash – Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.
speed (Optional) – String, Number – Строка, представляющая одно из трех предопределенных значений скорости эффекта («slow», «normal», или «fast») или число миллисекунд, в течение которых выполняется анимация (например 1000).
callback (Optional) – Function – Функция, которая может быть вызвана при завершении эффекта.
Возвращает: jQuery
Использует эффект для элемента, чтобы скрыть этот элемент, если первый аргумент является строкой с названием соответствующего эффекта.
В примере применяется эффект slide чтобы скрыть элемент div, если совершен клик на параграфе.
$("p").click(function () {
$("div").hide("slide", {}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
effect – String – Название эффекта.
options – Hash – Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.
speed (Optional) – String, Number – Строка, представляющая одно из трех предопределенных значений скорости эффекта («slow», «normal», или «fast») или число миллисекунд, в течение которых выполняется анимация (например 1000).
callback (Optional) – Function – Функция, которая может быть вызвана при завершении эффекта.
Возвращает: jQuery
Использует эффект для элемента, чтобы переключать этот элемент, если первый аргумент является строкой с названием соответствующего эффекта.
В примере применяется эффект slide чтобы переключать элемент div, если совершен клик на параграфе.
$("p").click(function () {
$("div").toggle("slide", {}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
effect – String – Название эффекта.
options – Hash – Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.
speed (Optional) – String, Number – Строка, представляющая одно из трех предопределенных значений скорости эффекта («slow», «normal», или «fast») или число миллисекунд, в течение которых выполняется анимация (например 1000).
callback (Optional) – Function – Функция, которая может быть вызвана при завершении эффекта.
Возвращает: jQuery
Использует эффект для элемента (без использования логики show/hide).
В примере применяется эффект explode, если на элементе совершен клик.
$("div").click(function () {
$(this).effect("explode", {}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
effect – String – Название эффекта.
options – Hash – Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.
speed (Optional) – String, Number – Строка, представляющая одно из трех предопределенных значений скорости эффекта («slow», «normal», или «fast») или число миллисекунд, в течение которых выполняется анимация (например 1000).
callback (Optional) – Function – Функция, которая может быть вызвана при завершении эффекта.
Мы узнали как можно использовать эффекты, но пока использовали только парочку из них. Давайте теперь подробнее познакомимся с перечнем эффектов и узнаем, какие из них можно использовать автономно, а какие можно применять с show, side и toggle.
Разумеется для начала нам потребуется подключить файл библиотеки jQuery, файл effects.core.js и файл нужного эффекта. Выглядеть это будет примерно так:
<script src="js/jquery-1.2.6.js" type="text/javascript"></script> <script src="js/effects.core.js" type="text/javascript"></script> // подключаем файл нужного эффекта <script src="js/effects.bounce.js" type="text/javascript"></script>
Познакомимся сначала с эффектами, которые можно использовать автономно (без логики show/hide). Таких эффектов четыре – bounce, highlight, shake, transfer.
$("#div1").click(function () {
$(this).effect("bounce", { times: 3 }, 300);
});
$("#div2").click(function () {
$(this).effect("bounce", { times: 7,
direction: 'right',
distance: 50 }, 300);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: up
«up», «down», «left», «right»
distance – Integer – по умолчанию: 20
расстояние в пикселах
times – Integer – по умолчанию: 5
количество раз
$("#div1").click(function () {
$(this).effect("highlight", {}, 1000);
});
$("#div2").click(function () {
$(this).effect("highlight", {color: '#ff0000'}, 500);
});
Откройте пример в отдельном окне и посмотрите исходный код.
color – String – по умолчанию: #ffff99
цвет подсветки
$("#div1").click(function () {
$(this).effect("shake", { times: 3 }, 300);
});
$("#div2").click(function () {
$(this).effect("shake", {
times: 4,
direction: 'down',
distance: 10 }, 300);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: left
«up», «down», «left», «right»
distance – Integer – по умолчанию: 20
расстояние в пикселах
times – Integer – по умолчанию: 3
количество раз
$("div.green1").click(function () {
$(this).effect("transfer", { to: "div.red" }, 2000);
});
$("div.green2").click(function () {
$(this).effect("transfer", { className: "transfer2",
to: "div.red" }, 800);
});
Откройте пример в отдельном окне и посмотрите исходный код.
className – String
Имя класса (опционально), которое можно назначить отображению трансформируемого элемента вместо стандартного «ui-effects-transfer».
to – String
jQuery селектор, определяющий элемент в который происходит трансформация.
Ну а теперь перечислим эффекты, которые можно использовать вместе с Show/Hide/Toggle:
$("#div1").click(function () {
$(this).hide("blind", {direction:"vertical"}, 1000);
});
$("#div2").click(function () {
$(this).hide("blind", {direction:"horizontal"}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: vertical
«vertical» или «horizontal»
$("#div1").click(function () {
$(this).hide("clip", {direction:"vertical"}, 1000);
});
$("#div2").click(function () {
$(this).hide("clip", {direction:"horizontal"}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: vertical
«vertical» или «horizontal»
$("#div1").click(function () {
$(this).hide("drop", { direction: "left" }, 1000);
});
$("#div2").click(function () {
$(this).hide("drop", { direction: "down" }, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: left
«left», «right», «up», «down»
$("#div1").click(function () {
$(this).hide("explode", {}, 1000);
});
$("#div2").click(function () {
$(this).hide("explode", { pieces: 25 }, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
pieces – Integer – по умолчанию: 9
количество штук.
$("#div1").click(function () {
$(this).hide("fold", {}, 1000);
});
$("#div2").click(function () {
$(this).hide("fold", { size: 50 }, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
size – Integer – по умолчанию: 15
размер в пикселах.
$("#div1").click(function () {
$(this).hide("puff", {}, 1000);
});
$("#div2").click(function () {
$(this).hide("puff", { percent: 700 }, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
percent – Integer – по умолчанию: 150
Количество процентов.
$("#div1").click(function () {
$(this).hide("slide", { direction: "left" }, 1000);
});
$("#div2").click(function () {
$(this).hide("slide", { direction: "down" }, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: left
«left», «right», «up», «down»
$("#div0").click(function () {
$(this).hide("scale", {}, 1000);
});
$("#div1").click(function () {
$(this).effect("scale", { percent: 0 }, 1000);
});
$("#div2").click(function () {
$(this).effect("scale", {
percent:200,
direction:'horizontal'}, 1000);
});
Откройте пример в отдельном окне и посмотрите исходный код.
direction – String – по умолчанию: both
‘both’, ‘vertical’, ‘horizontal’
from – Object
Начальное состояние. Обычно не требуется. { height: .., width: .. }
origin – Array – по умолчанию: ['middle','center']
Точка исчезновения, по умолчанию для show/hide
percent – Integer – по умолчанию: 0/100
Количество процентов.
$("#div1").click(function () {
$(this).effect("pulsate", { times: 2 }, 1000);
});
$("#div2").click(function () {
$(this).effect("pulsate", { times: 9 }, 50);
});
Откройте пример в отдельном окне и посмотрите исходный код.
times – Integer – по умолчанию: 5
Количество пульсаций.
Все использованные в примерах файлы, как и файл effects.core.js можно скачать в разделе download.
Надеюсь, что эта статья принесет пользу и поможет многим сделать свои приложения более динамичными.
Отзывов (20) на «jQuery UI: Effects – еще о визуальных эффектах.»
Класс! спасибо, за статейку
Большое спасибо, статьи действительно очень полезны.
Не помогли бы Вы разобраться в вопросе с лицензиями – как самой jQuery, так и плагинов, которые тут приводились.
Я недостаточно понимаю английский, чтобы разобраться в тонкостях лмцензирования – могу ли я использовать эти скрипты в продаваемом продукте или нет?
jQuery в настоящее время доступен для использования во всех личных или коммерческих проектах под лицензиями GPL и MIT.
В общем, если коротко, то да, можете. Плагины, как правило, распространяются под теми же лицензиями.
Можно ли изменить эффект toggle(effect, options, [speed], [callback]) чтобы выезажло не слева направо, а сверху вниз ?
$(«p»).click(function () {
$(«div»).toggle(«blind», {direction:»vertical»}, 1000);
});
Спасибо за статью! Отличный обзор…
Очень нужна помощь.. возможно ли в качестве скорости анимации назнавить значение переменной? Очень нужно! Код к примеру:
var animspeed = (parseInt(cheight)-parseInt(normalm))*e;
});
$("#up").hover(
function() {
$("#cont").animate({
marginTop: "-" + maxmarging + "",
marginBottom: "0",
}, "" + animspeed + "");
$("#up").animate({opacity: 0.5}, 70);
}
попробуйте в примере Scale на правый «синий» элемент кликнуть несколько раз, 3 – 5
Разрешите опубликовать вашу статью на сайте jquerys.ru разумеется с жирной ссылкой =)
Пожалуйста. Только учитывайте, что этой статье почти год…
А как можно зациклить эффект?
По-моему все эффекты имеют возможность принимать в качестве необязательного параметра callback-функцию. Если в ней снова вызвать тот же эффект, то можно зациклить…
Ответьте, пожалуйста, возможно ли при использовании toggle чтобы исчезающий-появляющийся div был изначально невидимым?
Если делать div { visibility: hidden }, то всеравно не так как хотелось бы.
Либо изначально скрывать с помощью стилей, либо через JS при загрузке – а как по-другому-то? В любом случае toggle – это по сути изменение значение css-свойства display.
Вопрос общий – можно ли сделать: есть Select [option] при выборе опции =>500 у нас соседний див становиться видимым. Интересно – возможно ли реализовать без PHP ?
Jenya, извиняй, но из вопроса понял только, что есть select, в котором точно больше 500 option’ов… Неудобно ведь, может разбить помельче как-то так.
что то не получается у меня toggle() привязать к tabs? совсем устал однако, писал по этому поводу , но то ли не там где нужно, не могу найти комментарий, я хочу использовать toggle(), при создании вкладок tabs?
вот пример кода
$(document).ready(function(){
$(‘#tabsTitle li’).mouseover,selected: 2(function(){ $(‘#content4 > div’).hide();
$(‘#’ + $(this).attr(‘class’)).toggle(); });
});
однако почему то при переходе на страницу где стоит виджет, по умолчанию не отображается первая вкладка, как бы свернуто все, и только при наведении мышки вкладки начинают нормально работать и отображаться, обновляешь страницу опять все свернуто и только опять при наведении разворачиваются, подскажи если есть время в чем может быть причина
Максим, а зачем? В смысле зачем Вам тогда вообще Tabs???
Понимаете, он сделан для того, чтобы избавить Вас от лишнего собственного кода. Все, что требуется от Вас – грамотно подключить и настроить виджет.
И открывать он при инициализации нужную вкладку может, и по mouseover вкладки переключать тоже может….
И в статье про Tabs все написано – надо только внимательно читать и пробовать.
Обсуждение статьи можно продолжить на форуме jQuery.