Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 利用函数的局部变量和setTimeout_Javascript_Css_Image_Settimeout_Opacity - Fatal编程技术网

Javascript 利用函数的局部变量和setTimeout

Javascript 利用函数的局部变量和setTimeout,javascript,css,image,settimeout,opacity,Javascript,Css,Image,Settimeout,Opacity,我在建立一个网站时遇到了一个障碍。我有一个函数,它向不同的ID添加一个特定的类。最终的结果是让图像在主页上一次淡出一个。我使用了局部变量a,这样我就可以轻松地编写不同id的代码,而无需编写3个单独的函数。但是,我在使用setTimeout时遇到问题。我似乎根本无法工作。任何帮助都将不胜感激。这些类被添加到ids中没有问题,我只是在使用setTimeout函数时遇到了问题。我用过很多我在这里看到的方法,但我并不真正理解它们。任何帮助都将不胜感激。这是我的密码: window.onload; va

我在建立一个网站时遇到了一个障碍。我有一个函数,它向不同的ID添加一个特定的类。最终的结果是让图像在主页上一次淡出一个。我使用了局部变量a,这样我就可以轻松地编写不同id的代码,而无需编写3个单独的函数。但是,我在使用setTimeout时遇到问题。我似乎根本无法工作。任何帮助都将不胜感激。这些类被添加到ids中没有问题,我只是在使用setTimeout函数时遇到了问题。我用过很多我在这里看到的方法,但我并不真正理解它们。任何帮助都将不胜感激。这是我的密码:

window.onload;
var fetchOne=document.getElementById('picOne');
console.log(fetchOne);
var fetchTwo=document.getElementById('picTwo');
var fetchThree=document.getElementById('PictThree');
函数附件类(a){
a、 className='opacity';
}
setTimeout(AttachClass.bind(null,a),8000);
附件类(fetchOne);
AttachClass(两个);
AttachClass(三个)
#微微一号{
不透明度:1;
过渡:不透明度2缓进缓出
}
#picOne.不透明度{
不透明度:0;
}
#皮克托{
不透明度:1;
z指数:-1;
过渡:不透明度2缓进缓出
}
#不透明度{
不透明度:0;
}
#皮克特里{
不透明度:1;
z指数:-2;
过渡:不透明度2缓进缓出
}
#不透明度{
不透明度:0;
}

您只为一个超时的图像设置了一个处理程序
粘贴的代码中从未定义过一个
,因此
设置超时
将不起作用

为了使它们单独淡出,您需要为每个要淡出的图像创建一个
setTimeout

for (var i = 0; i < images.length; i++) {
    setTimeout(AttachClass.bind(null, images[i]), 2000);
}
如果您想进一步完善它,可以在所有图像上粘贴一个类。我选择了类名
pic
,在DOM中查询该类名,然后设置上述超时

var images = document.getElementsByClassName('pic');

function AttachClass(a) {
  a.classList.add('opacity'); 
}

for (var i = 0; i < images.length; i++) {
  setTimeout(AttachClass.bind(null, images[i]), 1000);
}
var images=document.getElementsByClassName('pic');
函数附件类(a){
a、 添加('opacity');
}
对于(var i=0;i
供你玩玩! 快乐的黑客

给你
var-imgs=document.querySelectorAll('.fade');
无功延迟=500;
对于(变量i=0;i
.fade{
不透明度:.2;
转换:1s全部轻松输入输出;
}
.褪色{
不透明度:1
}

您可能需要这样的东西:

window.onload=function(){
AttachClass();
函数AttachClass(){
setTimeout(函数(){
var a=document.querySelector('.pics img:not(.opacity)');
如果(a){
a、 className=‘不透明度’;
AttachClass();
}
}, 1200);
}
}
.pics img{
宽度:100px;
不透明度:1;
过渡:不透明度1s缓进缓出
}
不透明度{
不透明度:0;
}


谢谢大家的帮助。他们帮我找到了最终的答案。这就是我最终解决问题的原因

window.onload
var fetchOne=document.getElementById('picOne');
console.log(fetchOne);
var fetchTwo=document.getElementById('picTwo');
var fetchThree=document.getElementById('PictThree');
setInterval(函数(){
setTimeout(函数AttachClass1(){fetchOne.className='opacity';},1000);
setTimeout(函数AttachClass2(){fetchTwo.className='opacity';},8000);
setTimeout(函数AttachClass3(){fetchThree.className='opacity';},14000);
setTimeout(函数RemoveClass2(){fetchTwo.classList.remove(“不透明”);},14000)
setTimeout(函数RemoveClass1(){fetchOne.classList.remove(“不透明”);},18000)
setTimeout(函数RemoveClass3(){fetchThree.classList.remove(“不透明”);},18000)

},24000);
将类添加到ID中没有问题
-这不是真的,因为
引用错误:a未定义
设置
类名
将不起作用。您知道您为
AttachClass
函数设置了
未定义的
参数吗;
var images = document.getElementsByClassName('pic');

function AttachClass(a) {
  a.classList.add('opacity'); 
}

for (var i = 0; i < images.length; i++) {
  setTimeout(AttachClass.bind(null, images[i]), 1000);
}