Jquery плавная смена css

Примеры для jQuery .animate()

Нажмите на кнопку для запуска анимации DIV элемента по нескольким различным свойствам.

 
html lang="en">
head>
meta charset="utf-8">
title>animate demo title>
style>
div
background-color: #bca;
width: 100px;
border: 1px solid green;
>
style>
script src="https://code.jquery.com/jquery-1.10.2.js"> script>
head>
body>
button id="go">» Запустить button>
div id="block">Hello! div>
script>
// Using multiple unit types within one animation.
$( "#go" ).click(function()
$( "#block" ).animate(
width: "70%",
opacity: 0.4,
marginLeft: "0.6in",
fontSize: "3em",
borderWidth: "10px"
>, 1500 );
>);
script>
body>
html>

Демонстрация:

Анимирует свойство left DIV элемента с относительным значением. Нажмите несколько раз на кнопки, чтобы увидеть относительные анимации в очереди.

 
html lang="en">
head>
meta charset="utf-8">
title>animate demo title>
style>
div
position: absolute;
background-color: #abc;
left: 50px;
width: 90px;
height: 90px;
margin: 5px;
>
style>
script src="https://code.jquery.com/jquery-1.10.2.js"> script>
head>
body>
button id="left">« button>
button id="right">» button>
div class="block"> div>
script>
$( "#right" ).click(function()
$( ".block" ).animate(< "left": "+=50px" >, "slow" );
>);
$( "#left" ).click(function()
$( ".block" ).animate(< "left": "-=50px" >, "slow" );
>);
script>
body>
html>

Демонстрация:

Первая кнопка показывает как работает анимация без очереди выполения анимации. Она расширяет DIV элемент до 90% ширины в то время как размер шрифта увеличивается. После того как изменение шрифта будет завершено, начнется анимация заливки границ элемента. Вторая кнопка запускает традиционную анимацию, когда каждая анимация будет запущена только если предыдущая анимация завершена.

 
html lang="en">
head>
meta charset="utf-8">
title>animate demo title>
style>
div
background-color: #bca;
width: 200px;
height: 1.1em;
text-align: center;
border: 2px solid green;
margin: 3px;
font-size: 14px;
>
button
font-size: 14px;
>
style>
script src="https://code.jquery.com/jquery-1.10.2.js"> script>
head>
body>
button id="go1">» Анимировать Блок 1 button>
button id="go2">» Анимировать Блок 2 button>
button id="go3">» Анимировать оба button>
button id="go4">» Сбросить button>
div id="block1">Block1 div>
div id="block2">Block2 div>
script>
$( "#go1" ).click(function()
$( "#block1" )
.animate(
width: "90%"
>,
queue: false,
duration: 3000
>)
.animate(< fontSize: "24px" >, 1500 )
.animate(< borderRightWidth: "15px" >, 1500 );
>);
$( "#go2" ).click(function()
$( "#block2" )
.animate(< width: "90%" >, 1000 )
.animate(< fontSize: "24px" >, 1000 )
.animate(< borderLeftWidth: "15px" >, 1000 );
>);
$( "#go3" ).click(function()
$( "#go1" ).add( "#go2" ).click();
>);
$( "#go4" ).click(function()
$( "div" ).css(
width: "",
fontSize: "",
borderWidth: ""
>);
>);
script>
body>
html>

Демонстрация:

Анимация свойства left первого DIV элемента и синхронизация обоих DIV элементов, при помощи step функции, устанавливающих их свойств left на каждом шаге анимации.

Источник

.animate()

.animate( properties [, duration ] [, easing ] [, complete ] ) Returns: jQuery

Description: Perform a custom animation of a set of CSS properties.

version added: 1.0 .animate( properties [, duration ] [, easing ] [, complete ] )

version added: 1.0 .animate( properties, options )

A Boolean indicating whether to place the animation in the effects queue. If false, the animation will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case the animation is added to the queue represented by that string. When a custom queue name is used the animation does not automatically start; you must call .dequeue("queuename") to start it.

An object containing one or more of the CSS properties defined by the properties argument and their corresponding easing functions. (version added: 1.4)

A function to be called for each animated property of each animated element. This function provides an opportunity to modify the Tween object to change the value of the property before it is set.

A function to be called after each step of the animation, only once per animated element regardless of the number of animated properties. (version added: 1.8)

A function to be called when the animation on an element completes (its Promise object is resolved). (version added: 1.8)

A function to be called when the animation on an element fails to complete (its Promise object is rejected). (version added: 1.8)

A function to be called when the animation on an element completes or stops without completing (its Promise object is either resolved or rejected). (version added: 1.8)

The .animate() method allows us to create animation effects on any numeric CSS property. The only required parameter is a plain object of CSS properties. This object is similar to the one that can be sent to the .css() method, except that the range of properties is more restrictive.

Animation Properties and Values

All animated properties should be animated to a single numeric value, except as noted below; most properties that are non-numeric cannot be animated using basic jQuery functionality (For example, width , height , or left can be animated but background-color cannot be, unless the jQuery.Color plugin is used). Property values are treated as a number of pixels unless otherwise specified. The units em and % can be specified where applicable.

In addition to style properties, some non-style properties such as scrollTop and scrollLeft , as well as custom properties, can be animated.

Shorthand CSS properties (e.g. font, background, border) are not fully supported. For example, if you want to animate the rendered border width, at least a border style and border width other than "auto" must be set in advance. Or, if you want to animate font size, you would use fontSize or the CSS equivalent 'font-size' rather than simply 'font' .

In addition to numeric values, each property can take the strings 'show' , 'hide' , and 'toggle' . These shortcuts allow for custom hiding and showing animations that take into account the display type of the element. In order to use jQuery's built-in toggle state tracking, the 'toggle' keyword must be consistently given as the value of the property being animated.

Animated properties can also be relative. If a value is supplied with a leading += or -= sequence of characters, then the target value is computed by adding or subtracting the given number from the current value of the property.

Note: Unlike shorthand animation methods such as .slideDown() and .fadeIn() , the .animate() method does not make hidden elements visible as part of the effect. For example, given $( "someElement" ).hide().animate(, 500) , the animation will run, but the element will remain hidden.

Duration

Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The default duration is 400 milliseconds. The strings 'fast' and 'slow' can be supplied to indicate durations of 200 and 600 milliseconds, respectively.

Callback Functions

If supplied, the start , step , progress , complete , done , fail , and always callbacks are called on a per-element basis; this is set to the DOM element being animated. If no elements are in the set, no callbacks are called. If multiple elements are animated, the callback is executed once per matched element, not once for the animation as a whole. Use the .promise() method to obtain a promise to which you can attach callbacks that fire once for an animated set of any size, including zero elements.

Basic Usage

To animate any element, such as a simple image:

Источник

Выполнение пользовательской анимации

Выполняет заданную пользователем анимацию, с выбранными элементами. Анимация происходит за счет плавного изменения CSS-свойств у элементов. Функция имеет два варианта использования:

properties — список CSS-свойств, участвующих в анимации и их конечных значений. (см. описание ниже)
duration — продолжительность выполнения анимации. Может быть задана в миллисекундах или строковым значением 'fast' или 'slow' (200 и 600 миллисекунд).
easing — изменение скорости анимации (будет ли она замедляется к концу выполнения или наоборот ускорится). (см. описание ниже)
callback — функция, которая будет вызвана после завершения анимации.

properties — список CSS-свойств, участвующих в анимации и их конечных значений. (см. описание ниже)
options — дополнительные опции. Должны быть представлены объектом, в формате опция:значение. Варианты опций:

duration — продолжительность выполнения анимации (см. выше). easing — изменение скорости анимации (будет ли она замедляется к концу выполнения или наоборот ускориться). (см. описание ниже) complete — функция, которая будет вызвана после завершения анимации. step — функция, которая будет вызвана после каждого шага анимации. queue — булево значение, указывающее, следует ли помещать текущую анимацию в очередь функций. В случае false, анимация будет запущена сразу же, не вставая в очередь. specialEasing — позволяет установить разные значения easing, для разных CSS-параметров. Задается объектом, в формате параметр:значение. Опция была добавлена в jQuery 1.4.

Выполнение нескольких анимаций

При одновременном вызове нескольких эффектов, применительно к одному элементу, их выполнение будет происходить не одновременно, а поочередно. Например при выполнении следующих команд:

$("#my-div").animate({height: "hide"}, 1000); $("#my-div").animate({height: "show"}, 1000);

элемент с идентификатором my-div, в начале будет плавно исчезать с экрана, а затем начнет плавно появляться вновь. Однако, анимации, заданные на разных элементах, будут выполняться одновременно:

$("#my-div-1").animate({height: "hide"}, 1000); $("#my-div-2").animate({height: "show"}, 1000);

Параметр properties

Задается объектом, в формате css-свойство:значение. Это очень похоже на задание группы параметров в методе .css(), однако, properties имеет более широкий диапазон типов значений. Они могут быть заданы не только в виде привычных единиц: чисел, пикселей, процентов и др., но еще и относительно: (увеличит высоту на 30 пикселей и сместит вправо на 40). Кроме того, можно задавать значения "hide", "show", "toggle", которые скроют, покажут или изменят видимость элемента на противоположную, за счет параметра, к которому они применены. Например

$('div').animate( { opacity: "hide", height: "hide" }, 5000);

Скроет div-элементы, за счет уменьшения прозрачности и уменьшения высоты (сворачиванием) элемента.

Замечание 1: Отметим, что в параметре properties можно указывать только те css-свойства, которые задаются с помощью числовых значений. Например, свойство background-color использовать не следует.

Замечание 2: Величины, которые в css пишутся с использованием дефиса, должны быть указаны без него (не margin-left, а marginLeft).

Обработчик завершения анимации

Функция, заданная в качестве обработчика завершения анимации не получает параметров, однако, внутри функции, переменная this будет содержать DOM-объект анимируемого элемента. Если таких элементов несколько, то обработчик будет вызван отдельно, для каждого элемента.

Параметр easing

Этот параметр определяет динамику выполнения анимации — будет ли она проходить с замедлением, ускорением, равномерно или как то еще. Параметр easing задают с помощью функции. В стандартном jQuery доступны лишь две такие функции: 'linear' и 'swing' (для равномерной анимации и анимации с ускорением). По умолчанию, easing равняется 'swing'. Другие варианты можно найти в плагинах, например, jQuery UI предоставляет более 30 новых динамик.

Существует возможность задавать разные значения easing для разных css-свойств, при выполнении одной анимации. Для этого нужно воспользоваться вторым вариантом функции animate() и задать опцию specialEasing. Например:

$('#clickme').click(function() { $('#book').animate({ opacity: 'toggle', height: 'toggle' }, { duration: 5000, specialEasing: { opacity: 'linear', height: 'swing' } }); });

в этом случае изменение прозрачности будет происходить равномерно (linear), а высота будет изменяться с разгоном в начале и небольшим торможением в конце (swing).

В действии

При нажатии на кнопку, произведем некоторые манипуляции с элементом, используя метод animate:

~lt~!DOCTYPE html~gt~ ~lt~html~gt~ ~lt~head~gt~ ~lt~style~gt~ div < background-color:#bca; width:100px; border:1px solid green; >~lt~/style~gt~ ~lt~script src="https://code.jquery.com/jquery-latest.min.js"~gt~~lt~/script~gt~ ~lt~/head~gt~ ~lt~body~gt~ ~lt~button ~gt~» Съешь пирожок~lt~/button~gt~ ~lt~div ~gt~Алиса~lt~/div~gt~ ~lt~script~gt~ // Произведем изменение нескольких css-величин в ходе одной анимации. $("#go").click(function()< $("#block").animate(< width: "70%", // ширина станет 70% opacity: 0.4, // прозрачность будет 40% marginLeft: "0.6in", // отступ от левого края элемента станет равным 6 дюймам fontSize: "3em", // размер шрифта увеличится в 3 раза borderWidth: "10px" // толщина рамки станет 10 пикселей >, 1500); // анимация будет происходить 1,5 секунды >); ~lt~/script~gt~ ~lt~/body~gt~ ~lt~/html~gt~

Ссылки

  • пользовательская анимация
  • выполнение анимации
  • анимация заданная пользователем
  • эффекты заданные пользователем
  • .animate()
  • animate()

От автора jquery.page2page.ru

Мини-игра про поход за продуктами во время карантина.

Твой уникальный шанс напинать короновирусу буквально.

Источник

Читайте также:  Python def return type
Оцените статью