Javascript 未执行的函数
编辑:我已经更新了函数,这是从 因此,在我的网页中,我有一个图像和两个按钮。我想完成的是,当第一个按钮被点击,然后图像改变为另一个这是工作,然后我希望该图像褪色。我有一个函数,它接收一个对象并使其消失,但由于某种原因它不起作用。然后,我尝试将该功能添加到按钮中,但即使单击按钮,旧的和新的图像也不会改变 我首先像这样显示图像 然后淡入淡出功能看起来像这样Javascript 未执行的函数,javascript,html,Javascript,Html,编辑:我已经更新了函数,这是从 因此,在我的网页中,我有一个图像和两个按钮。我想完成的是,当第一个按钮被点击,然后图像改变为另一个这是工作,然后我希望该图像褪色。我有一个函数,它接收一个对象并使其消失,但由于某种原因它不起作用。然后,我尝试将该功能添加到按钮中,但即使单击按钮,旧的和新的图像也不会改变 我首先像这样显示图像 然后淡入淡出功能看起来像这样 var fadeEffect=function(){ return{ init:function(id, flag, t
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
}
}
}
}();
function changeImage(obj,img) {
document.getElementById(obj).src = img;
fadeEffect.init('chestImg', 0)
}
解决方案修复尝试一
我尝试在changeImage函数之后添加一个对淡入淡出函数的调用,这样看起来就像这样
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
}
}
}
}();
function changeImage(obj,img) {
document.getElementById(obj).src = img;
fadeEffect.init('chestImg', 0)
}
解决方案修复尝试二
但这不起作用,所以我试着把它添加到一个按钮上,就像这样。注:最后,我不想为淡入淡出功能按钮,但它正在运行后,图像被改变
然后这样称呼它
<button id="openChest" onclick="fade('chestImg')" > Hide </button>
但那没用。我是完全离开了,还是应该离开
var fadeEffect={
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;
}
}
};
?至少,其中只有一个可以在浏览器中工作,另外两个应该会出错
this.elem.style.opacity = value / 100;
this.elem.style.filter = 'alpha(opacity=' + value + ')';
this.alpha = value
最好检查哪个属性有效,然后定义一个同名函数来调整相应的属性。但是现在。尝试在chrome中使用不透明度。好的onclick='fadeEffect.init'chestImg',0'有引号问题,它应该像'onclick=fadeEffect.init'chestImg',0'一样吗?因为这仍然不起作用。@user2612619:您可能想查看一下您正在立即调用函数并将结果返回给变量的链接,我完全不确定这是否起作用。做一个控制台。logfadeEffect!我为你做了一把小提琴,它到底应该做什么?这不起作用,事实上,当添加其他任何东西都不起作用时,所以我假设它有问题。这次页面很好,但当我单击“隐藏”时没有发生任何事。@user2612619找到控制台了吗?是的,单击“隐藏”时没有显示任何内容。您在第一部分中只使用了相当复杂的javascript代码,但fadeOut是一个jQuery函数,请问您是否安装了它我已经在帖子中更新了函数的原始代码。现在,单击后,img将闪烁。当我重新找到它的时候,我已经把它贴在哪里了。我的代码和他们的一样。
<button id="openChest" onclick="fade('chestImg')" > Hide </button>
var fadeEffect={
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;
}
}
};
this.elem.style.opacity = value / 100;
this.elem.style.filter = 'alpha(opacity=' + value + ')';
this.alpha = value