OnMouseOver/OnMouseOut Transition-эффект
Здравствуйте, имеется такая вещь
<img src="images/5_e.jpg" alt="" onmouseout="this.src='images/5_e.jpg'" onmouseover="this.src='images/5.jpg'"/>замена картинки проходит отлично, хочу прикрутить CSS transition: transition: all 0.5s ease;,для плавного перехода, помогите пожалуйста, как это осуществить для данного примера. |
1) transition применяется только к css-свойствам. Какое css-свойство ты меняешь?
2) не все свойства поддаются transition'у, например background-image:url() нелья плавно изменить. Создавай два элемента и анимируй их прозрачности. Именно так это и работает на всех сайтах. |
Цитата:
<!DOCTYPE html> <head> <style type="text/css"> #tile { width: 72px; height: 72px; background-color: #3896F6; background-image: url('http://javascript.ru/forum/image.php?u=8952&dateline=1362465013'); background-repeat: no-repeat; border: 3px solid #008E8E; background-size: cover; transition: all 2s; -moz-transition: all 2s; /* Firefox Support */ -webkit-transition: all 2s; /* Chrome and Safari Support */ -o-transition: all 2s; /* Opera Support */ } #tile:hover { border-color: #FFFF00; background-image: url('http://javascript.ru/forum/image.php?u=7416&dateline=1372796129'); } </style> <title></title> </head> <html> <body> <div id="tile"> </div> </body> </html> |
Хм, забавно. Пока писал, чувствовал что могу ошибиться. Хром конечно удивил.
|
:write:
можно менять background-position это вроде все сейчас поддерживают |
А не подскажите как сделать это с моим примером, я мучаюсь много времени.
<img src="images/5.jpg" width="250" height="212" alt="" id="opacity"> <img src="images/5_e.jpg" width="250" height="212" alt="" id="body"> #body, #opacity{ z-index: 2; position: relative; } #opacity { position: absolute; opacity: 0; z-index: 3; transition: all 0.3s linear; width: 100%; height: 100%; } #opacity:hover { opacity: 1; } получается, первая картинка которую меняем позиционирована нормально, а вот та, на которую меняем (со свойством absolute) при наведении растягивается от начала (top и left как у первой) до конца экрана (растягивается bottom и right) Не подскажите как решить эту проблему, хожу вокруг до около, и в интернете никаких источников на эту тему, или я плохо гуглю((( :( :( |
Цитата:
|
<style> .transition{ position: relative; width: 20px; height: 20px; } .transition .background{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; transition: opacity 0.5s; } .transition .background{ background: url(http://javascript.ru/forum/images/smilies/sad.gif) no-repeat; opacity: 1; } .transition .background.hover{ background: url(http://javascript.ru/forum/images/smilies/smile.gif) no-repeat; opacity: 0; } .transition:hover .background{ opacity: 0; } .transition:hover .background.hover{ opacity: 1; } </style> <div class="transition"> <div class="background"></div> <div class="background hover"></div> </div> |
А можно это как нибудь сделать, если картинки в <img> находятся, в самом теле, потому что их будет очень много и для каждой не совсем хорошо прописывать в стили и background?
|
Все сработало!!! Спасибо большое!!!:)
|
Часовой пояс GMT +3, время: 15:05. |