Как сделать эффект смягчения для Dreamweaver Image Rollovers?
Когда я добавляю эффект прокрутки изображения с помощью Dreamweaver, Dreamweaver добавляет этот фрагмент кода в виде JavaScript:-
<script type="text/javascript">
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
И это в ее теле onload
: -
<body onload="MM_preloadImages('aim-hover.png')">
И это для изображения ролловера: -
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','aim-hover.png',1)"><img src="aim.png" name="Image1" width="30" height="30" border="0" id="Image1" /></a>
Это делает эффект ролловера, который переключается между изображениями.
Теперь мой вопрос: - Как я могу добавить ease-in
ease-out
эффект для этих изображений?
Может быть через jquery или чистый Javascript......
Как и в CSS, мы делаем что-то подобное для ease
div {
position:relative;
width:240px;
height:100px;
background-color:red;
-o-transition:background-color 200ms ease-in-out;
-moz-transition:background-color 200ms ease-in-out;
-webkit-transition:background-color 200ms ease-in-out;
transition:background-color 200ms ease-in-out;
}
div:hover {
background-color:blue;
}
<div></div>
1 ответ
Вы ищете специально (кроссплатформенное) решение Javascript?
Если нет, вы можете легко сделать это в чистом CSS3. Хотя IE не любит transitions
, D:
Вы можете попробовать установить CSS следующим образом:
div.roller { width: 50px; height: 50px; border: solid 1px green;}
div.roller div { -webkit-transition: all 1s ease-in-out; width: 50px; height: 50px; }
div.off, div.roller:hover div.over { opacity: 1.0; }
div.roller:hover div.off, div.over { opacity: 0; }
.off { background-color: red; position: absolute;}
.over { background-color: yellow; }
Добавьте специфичные для браузера префиксы для transitions
Я просто использовал -webkit-
для удобства.
Вы можете установить свои изображения в качестве фона .off
а также .over
div, вставлять их внутрь или даже использовать img
теги вместо div
теги.
Убедитесь, что вы установили элемент с начальным состоянием, .off
, чтобы position: absolute
таким образом, он накладывается сверху вниз, .over
,
И HTML вроде так:
<div class="roller" >
<div class="off">off</div>
<div class="over">over</div>
</div>
Возиться с этим здесь.