jQuery метод .show()
jQuery эффектыОпределение и применение
jQuery метод .show() позволяет отобразить скрытые выбранные элементы. Для того, чтобы скрыть выбранные элементы вы можете воспользоваться методом .hide().
Обращаю Ваше внимание, что когда метод .show() используется без параметров, то элемент отображается без анимации. Это эквивалентно* использованию метода .css() со следующим значением:
$( selector ).css( "display", "block" )
* - за исключением того, что значение свойства display сохраняется внутри jQuery и может позже быть восстановлено к первоначальному значению.
Если вы используете стили элемента с !important, то метод .show() не сможет отобразить элемент. В этом случае рекомендуется использовать такие методы как .addClass(), .removeClass(), .toggleClass(), или .attr().
jQuery синтаксис:
Синтаксис 1.0: $( selector ).show() // метод используется без параметров $( selector ).show( duration, complete ) duration - Number, или String complete - Function $( selector ).show( { options } ) // option: value (описание ниже) options - PlainObject Синтаксис 1.4.3: $( selector ).show( duration, easing, complete ) duration - Number, или String easing - String complete - Function
Добавлен в версии jQuery
1.0 (синтаксис обновлен в версии 1.4)Значения параметров
Параметр | Описание |
---|---|
duration | Строковое или числовое значение, которое определяет, как долго анимация будет продолжаться. Значение по умолчанию 400 (в миллисекундах). Строковые ключевые слова 'fast' и 'slow' соответствуют 200 и 600 миллисекундам соответственно (высокие значения указывают на медленную анимацию, а более низкие на быструю). |
easing | Ключевое слово (строка), которое опряеделяет кривую скорости для анимации (используется математическая функция - кубическая кривая Безье). Без использования внешних плагинов имеет только два значения - linear (эффект анимации с одинаковой скоростью от начала до конца) и swing (эффект анимации имеет медленный старт и медленное окончание, но скорость увеличивается в середине анимации). Значение по умолчанию swing. |
complete | Функция, которая будет выполнена после завершения анимации, она вызывается один раз для каждого соответствующего элемента. Внутри функции, переменная this ссылается на DOM элемент к которому применяется анимация. |
options |
|
Пример использования
<!DOCTYPE html> <html> <head> <title>Использование jQuery методов .hide() и .show() (без параметров)</title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $( ".hide" ).click(function(){ // задаем функцию при нажатиии на элемент с классом hide $( "p" ).hide(); // скрывыаем все элементы <p> }); $( ".show" ).click(function(){ // задаем функцию при нажатиии на элемент с классом show $( "p" ).show(); // отображаем все элементы <p> }); }); </script> </head> <body> <button class = "hide">Скрыть</button> <button class = "show">Показать</button> <p>Первый абзац</p> <p>Второй абзац</p> <p>Третий абзац</p> </body> </html>
В этом примере с использованием jQuery методов .hide() и .show() мы при нажатии на определенную кнопку скрываем, либо отображаем все элементы <p> в документе.
Результат нашего примера:
Рассмотрим следующий пример в котором зададим методам .hide() и .show() различные значения продолжительности анимации:
<!DOCTYPE html> <html> <head> <title>Использование jQuery методов .hide() и .show() (различная скорость анимации)</title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $( ".hide" ).click(function(){ // задаем функцию при нажатиии на элемент с классом hide $( "p:first" ).hide( "slow" ); // скрывыаем первый элемент <p> в документе $( "p:nth-of-type(2)" ).hide( 2000 ); // скрывыаем второй элемент <p> в документе $( "p:last" ).hide( "fast" ); // скрывыаем последний элемент <p> в документе }); $( ".show" ).click(function(){ // задаем функцию при нажатиии на элемент с классом show $( "p:first" ).show( "slow" ); // отображаем первый элемент <p> в документе $( "p:nth-of-type(2)" ).show( 2000 ); // отображаем второй элемент <p> в документе $( "p:last" ).show( "fast" ); // отображаем последний элемент <p> в документе }); }); </script> </head> <body> <button class = "hide">Скрыть</button> <button class = "show">Показать</button> <p>Первый абзац</p> <p>Второй абзац</p> <p>Третий абзац</p> </body> </html>
В этом примере с использованием jQuery методов .hide() и .show() мы при нажатии на определенную кнопку скрываем, либо отображаем все элементы <p> в документе. При этом первый элемент <p> скрывается, или отображается за 600 миллисекунд (ключевое слово 'slow'), второй элемент за 2000 миллисекунд, а третитй за 200 миллисекунд (ключевое слово 'fast').
Результат нашего примера:
Рассмотрим следующий пример в котором зададим методам .hide() и .show() не только продолжительность анимации, но и укажем скорость анимации и функцию, которая будет выполнена после завершения анимации:
<!DOCTYPE html> <html> <head> <title>Использование jQuery методов .hide() и .show() (с callback функцией)</title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $( ".hide" ).click(function(){ // задаем функцию при нажатиии на элемент с классом hide $( "p" ).hide( 500, "linear", function(){ // скрывыаем элементы <p> в документе $(".status").text("Элементы исчезли"); // добавляем текстовую информации в элемент с классом status }); }); $( ".show" ).click(function(){ // задаем функцию при нажатиии на элемент с классом show $( "p" ).show( 500, "linear", function(){ // отображаем элементы <p> в документе $(".status").text("Элементы появились"); // добавляем текстовую информации в элемент с классом status }); }); }); </script> </head> <body> <button class = "hide">Скрыть</button> <button class = "show">Показать</button> <p>Первый абзац</p> <p>Второй абзац</p> <p>Третий абзац</p> <div class = "status"></div> </body> </html>
В этом примере с использованием jQuery методов .hide() и .show() мы при нажатии на определенную кнопку скрываем, либо отображаем все элементы <p> в документе. При этом мы указали для наших методов продолжительность анимации равную пол секунды (500 миллисекунд), эффект анимации происходит с одинаковой скоростью от начала до конца (linear) и функцию, которая после завершения анимации находит элемент с классом status и добавляет текстовую информацию (jQuery метод .text()).
Результат нашего примера:
Рассмотрим следующий пример в котором передадим в качестве параметра методов .hide() и .show() объект, содержащий различные опции, которые будут контролировать анимацию:
<!DOCTYPE html> <html> <head> <title>Использование jQuery методов .hide() и .show() (объект с опциями в качестве параметра)</title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $( ".hide" ).click(function(){ // задаем функцию при нажатиии на элемент с классом hide $( "p" ).hide( { // скрывыаем элементы <p> в документе duration: 800, // продолжительность анимации easing: "linear", // скорость анимации complete: function(){ // callback $(".status").text("Элементы исчезли"); }, queue: false // не ставим в очередь }); }); $( ".show" ).click(function(){ // задаем функцию при нажатиии на элемент с классом show $( "p" ).show( { // отображаем элементы <p> в документе duration: 800, // продолжительность анимации easing: "linear", // скорость анимации complete: function(){ // callback $(".status").text("Элементы появились"); }, queue: false // не ставим в очередь }); }); }); </script> </head> <body> <button class = "hide">Скрыть</button> <button class = "show">Показать</button> <p>Первый абзац</p> <p>Второй абзац</p> <p>Третий абзац</p> <div class = "status"></div> </body> </html>
В этом примере с использованием jQuery методов .hide() и .show() мы при нажатии на определенную кнопку скрываем, либо отображаем все элементы <p> в документе. При этом мы в качестве параметров метода передаем объект содержащий следующие параметры:
- продолжительность анимации равную 800 миллисекунд (duration: 800)
- эффект анимации происходит с одинаковой скоростью от начала до конца (easing: linear)
- функция, которая после завершения анимации находит элемент с классом status и добавляет текстовую информацию (complete: function).
- анимация не размещается в очереди эффектов (queue: false).
Результат нашего примера:
jQuery эффекты