可以't调用函数
Can't Call a Function
JFiddler-http://jsfiddle.net/x2Uwg/
所以我有一个淡入淡出功能,先淡入图像,然后淡出。我希望图像先淡入、更改,然后淡出。问题是,我能让img淡出的唯一方法是,如果我把它放在这样的按钮里。
<button class="hide2" onclick="fadeEffect.init('chestImg', 0)">Fade Out</div>
我希望它像这个
Img显示
用户点击一个按钮
图像淡入,然后更改。
图像逐渐消失。
现在是这样的。
Img显示
用户点击一个按钮
图像淡入,然后更改。
用户点击另一个按钮
图像逐渐消失。
我的淡入淡出功能看起来是这样的。
var fadeEffect=function(){
return{
init:function(id, flag, target){
this.elem = document.getElementById(id);
clearInterval(this.elem.si);
this.target = target ? target : flag ? 100 : 0;
this.flag = flag || -1;
this.alpha = this.elem.style.opacity ? parseFloat(this.elem.style.opacity) * 100 : 0;
this.elem.si = setInterval(function(){fadeEffect.tween()}, 20);
},
tween:function(){
if(this.alpha == this.target){
clearInterval(this.elem.si);
}else{
var value = Math.round(this.alpha + ((this.target - this.alpha) * .05)) + (1 * this.flag);
this.elem.style.opacity = value / 100;
this.elem.style.filter = 'alpha(opacity=' + value + ')';
this.alpha = value
}
}
}
}();
我把淡入称为
fadeEffect.init('chestImg', 1);
像一样淡出
fadeEffect.init('chestImg', 0);
但如果我把它们放在同一个函数中,它将不起作用。有什么帮助吗?
当您在同一函数中同时调用fadeEffect.init('chestImg', 1);
和fadeEffect.init('chestImg', 0);
时,两种效果同时运行,我认为这会导致您的问题。我认为你需要做的是:
fadeEffect.init('chestImg', 1);
setTimeout(function(){fadeEffect.init('chestImg', 0);},20);
我认为您的问题在于绑定this
。当从按钮的点击处理程序中调用函数时,this
被设置为该按钮节点。您可以使用call
功能手动设置this
对象
var button = document.getElementById('hide-id');
fadeEffect.init.call(button,'chestImg', 0);
为什么要写";。调用(这个)";在javascript匿名函数的末尾?
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 调用函数内部的函数
- 在javascript中调用c函数
- DropDownListFor赢得't在更改时调用函数
- Javascript页面调用函数
- 在动画结束之前调用函数
- 允许父窗口在其不同域的子iframe上调用函数
- 运行Infinite Scroll后调用函数时出现问题
- JavaScript:在调用函数的文本输入上按enter键
- 使用大括号和不使用bracs调用函数的区别
- javascript在事件上调用函数
- 从index.html调用函数,该函数无限循环
- 从带参数的字符串变量调用函数中的函数
- 为什么 JS 不在滚动时调用函数
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在ES6类中使用参数调用函数
- AngularJS:调用函数时编号不更新
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 在JavaScript中调用函数时自定义此选项
- 调用函数中声明的变量