Как сделать эффект смягчения для 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-inease-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>​

Возиться с этим здесь.

Другие вопросы по тегам