我创建了一个 Css 类,它定义了图像的不透明度,但我需要在 JavaScript 中访问它并在 for 循环中更改它,然后将新的不透明度传递回变量并重复该过程,直到获得我想要的不透明度100%。
我需要由 onmouseover 事件处理程序触发它。谁能给我看一些代码,让我知道它是怎么做的?
我的外部样式表中的 css:
.test{
opacity:0.4;
filter:alpha(opacity=40); /* For IE8 and earlier */
}
我创建了一个 Css 类,它定义了图像的不透明度,但我需要在 JavaScript 中访问它并在 for 循环中更改它,然后将新的不透明度传递回变量并重复该过程,直到获得我想要的不透明度100%。
我需要由 onmouseover 事件处理程序触发它。谁能给我看一些代码,让我知道它是怎么做的?
我的外部样式表中的 css:
.test{
opacity:0.4;
filter:alpha(opacity=40); /* For IE8 and earlier */
}
// assuming jQuery
$('.test').bind({
mouseover: function() {
$(this).animate({opacity:1},500,function(){
// something to do when done
});
}
});
使用直接的 javascript,您需要获取元素:
var element = this;// for example or var element = document.getElementById('some-id');
var opacity = element.style.opacity;
function updateOpacity() {
opacity = opacity+=0.2;
if(opacity >= 1) {
// done
opacity = 1;
} else {
element.style.opacity = opacity; // this updates the opacity
setTimeout(function(){updateOpacity();}, 50); // 50 is the delay, 50milliseconds
}
}
评论中的快速说明:
setTimeout() 调用可以通过以下方式使用:
如果您没有要传递的参数,请使用此
setTimeout(updateOpacity, 50);
如果您使用的是遗留代码,您可能会发现这个可行,但请参见下文
setTimeout("updateOpacity();", 50);
如果您需要将参数传递给回调函数,请优先使用它而不是 2。
setTimeout(function(){ updateOpacity(); }, 50);
使用 jQuery,您可以使用
$('.test').fadeTo( 500, 1.0 ); //fade to 100% opaque in 500 ms
参考:http ://api.jquery.com/fadeTo/
对于鼠标悬停:
$('.test').mouseover(function(){
$(this).fadeTo( 500, 1.0 );
});