如何使用for循环更改图像的不透明度以创建渐变照明效果
How do I change the opacity of an image using a for loop to create a gradual lighting up effect?
我已经创建了一个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("updateOpcity();",50);
如果需要将参数传递给回调函数,请优先使用this而不是2。
setTimeout(function(){updateOpcity();},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 );
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用for循环更改图像的不透明度以创建渐变照明效果
- 在具有动态高度的背景图像上创建渐变覆盖
- KineticJS - 创建带有渐变描边的样条曲线
- 是否可以将从画布上下文创建的渐变应用于其他画布上下文
- 如何创建不透明度渐变()?(对jQuery的改进)
- 使用css渐变和javascript创建动画
- 创建渐变/彩虹strokeStyle html5画布
- 在keyDown上创建渐变
- 尝试编写渐变创建器javascript和jquery
- 创建一个渐变为白色的页面过渡,但这似乎不起作用
- 如何在CSS中创建渐变不透明度的边框
- 在不使用热图的情况下创建具有颜色渐变的圆
- 您将如何仅使用Javascript(没有css)创建从黑色到白色的渐变
- 创建导航,滚动到元素时渐变为不同的颜色
- 如何使用jQuery创建渐变图片幻灯片
- 如何在画布中创建文本渐变