советы по CSS, HTML, Java Script, PHP

блог о веб технологиях

плавное появление и исчезновение

Май25

плавное появление и исчезновение

Продолжая тему про jquery сегодня расскажу как сделать на javascript плавное появление картинки. Да, да именно плавное, не как-то рвано и ступенчато, а именно плавно, ну и конечно при помощи всего нескольких строк кода – на то он и javascript фреймфорк jquery.

Немного теории

У всех объектов которые окружают нас в повседневной жизни есть характеристика прозрачности, которая отвечает за то, насколько объект пропускает световой поток. Например обычное стекло имеет коэффициент прозрачности 10% – то есть пропускает 90% света проходящего через него. Чем выше коэффициент прозрачности тем меньше света пропускает объект и следственно тем лучше виден. Монитор конечно хоть и не может менять свою прозрачность, но принцип действия тотже – эффект появления или исчезновение объекта будет достигаться путем изменение css свойства прозрачности объекта. Для этих целей в jquery есть набор методов fade:

fadeIn(speed,[fn]) – сделает объект видимым (плавно проявит) за время speed, и после этого вызовет функцию [fn] один раз.

fadeOut(speed,[fn]) – сделает объект прозрачным (плавно скроет) за время speed, и после этого вызовет функцию [fn] один раз.

fadeTo(speed, opacity,[fn]) – изменит уровень прозрачности объекта до значение opacity за время speed, и после этого вызовет функцию [fn] один.

speed – может принимать либо строковый параметр: slow, normal, fast, либо значение в миллисекундах

[fn] – не обязательный параметр

Практический пример

Создадим четыре кнопки – скрыть, отобразить, 10% прозрачность, 100% прозрачность и будем экспериментировать с картинкой:

 
<input type="button" value="Скрыть" onclick="$('div.container').fadeOut('slow');">
<input type="button" value="Отобразить" onclick="$('div.container').fadeIn('slow');">
<input type="button" Value="10% прозрачность" onclick="$('div.container').fadeTo('slow',0.1);">
<input type="button" Value="100% прозрачность" onclick="$('div.container').fadeTo('slow',1);">
<div class="container">
<img src="plavnoe-poyavlenie-i-zatemnenie-kartinka.jpg">
</div>

Обратите внимание, что если вы сначала кликнули на “10% прозрачность”, затем на “скрыть” и затем на “отобразить”, то после щелчка на “отобразить” прозрачность вернется к отметке 10%, а не 100% – дело в том, что функции fadeIn и fadeOut компенсируют только изменения сделанные друг другом, не забывайте это.

Данный метод можно применять к любым объектам,  в том числе и к тексту. Как видите плавное появление можно довольно просто,  быстро и красиво реализовать через javascript и не нужен нам никакой flash. Если что-то не получилось качаем скрипт плавного появления или смотрим пример плавного появления на jquery.

размещено в Java Script
13 Комментариев для

“плавное появление и исчезновение”

  1. On Май 25th, 2010 at 20:49 golileo написал:

    вы забыли закрыть скрипт :)
    а веть частенько поподается такая картинка попробую написать у себя спасибо

  2. On Май 25th, 2010 at 21:05 admin написал:

    всегда пожалуйста, а что я забыл закрыть?

  3. On Май 25th, 2010 at 21:25 golileo написал:
  4. On Май 25th, 2010 at 21:32 golileo написал:

    скрипт в конце тоесть показать браузеру что скрипт закончил свое действие /script

  5. On Май 25th, 2010 at 21:44 golileo написал:

    а нет это я тупанул:(

  6. On Май 26th, 2010 at 06:20 admin написал:

    :)

  7. On Май 26th, 2010 at 12:49 Duck написал:

    можно использовать свойство opacity

  8. On Май 28th, 2010 at 17:42 admin написал:

    можно, вокруг него все и крутится, только все махинации с этим свойством проводит за Вас jquery

  9. On Июль 6th, 2010 at 14:39 Аня написал:

    Классно)) Для загрузки само то. Только у меня отображается как кнопки((

  10. On Июль 9th, 2010 at 13:40 admin написал:

    кто отображается как кнопки?

  11. On Август 10th, 2010 at 20:23 G_ROM написал:

    мне вот не понятно, если все уперается в свойство opacity, то как плавное исчезновение и появление в вашем примере работает в Inernet Explorer 6.0, который opacity не поддерживает ???????????????????

  12. On Август 23rd, 2010 at 11:01 admin написал:

    для ie используется не opacity, а специальный фильтр, который делает тоже самое

  13. On Август 25th, 2010 at 19:11 G_ROM написал:

    Я сделал плавное исчезновение и появление большого блока div через функции fadeTo(’slow’, 0) и fadeTo(’slow’, 1); В мозилле все работает отлично, а в ie6 изсчезновение и появление получается не плавное, а дерганое… подскажите, с чем это может быть связано?? по сути в ie6 должно все работать нормально, т.к. хотя бы здесь http://www.xilinx.com/support/download/index.htm все работает нормально!!!

Вы должны авторизироваться чтобы оставить комментарий.