因此,我创建了以下函数来淡入淡出元素并传入一个我想要淡入淡出的 div,在这种情况下,我想在用户单击我网站上的图像缩略图时显示一个图片库弹出窗口。我还传递了一个速度值(iSpeed),超时用于它的时间值。在这种情况下,我使用 25 (25ms)。
我已经逐步完成了此功能,同时它似乎按预期运行。如果当前不透明度小于 1,则它会递增,并且在超时后会重新调用自身,直到不透明度达到 1。当它达到 1 时,它会停止淡入淡出并返回。
因此,在逐步完成之后,我取消了断点并尝试查看它的运行情况,但由于某种原因,我的画廊立即出现而没有任何褪色感。
var Effects = new function () {
this.Fading = false;
this.FadeIn = function (oElement, iSpeed) {
//set opacity to zero if we haven't started fading yet.
if (this.Fading == false) {
oElement.style.opacity = 0;
}
//if we've reached or passed max opacity, stop fading
if (oElement.style.opacity >= 1) {
oElement.style.opacity = 1;
this.Fading = false;
return;
}
//otherwise, fade
else {
this.Fading = true;
var iCurrentOpacity = parseFloat(oElement.style.opacity);
oElement.style.opacity = iCurrentOpacity + 0.1;
setTimeout(Effects.FadeIn(oElement, iSpeed), iSpeed);
}
}
}
这是我设置画廊的地方。
this.Show = function (sPage, iImagesToDisplay, oSelectedImage) {
//create and show overlay
var oOverlay = document.createElement('div');
oOverlay.id = 'divOverlay';
document.body.appendChild(oOverlay);
//create and show gallery box
var oGallery = document.createElement('div');
oGallery.id = 'divGallery';
oGallery.style.opacity = 0;
document.body.appendChild(oGallery);
//set position of gallery box
oGallery.style.top = (window.innerHeight / 2) - (oGallery.clientHeight / 2) + 'px';
oGallery.style.left = (window.innerWidth / 2) - (oGallery.clientWidth / 2) + 'px';
//call content function
ImageGallery.CreateContent(oGallery, sPage, iImagesToDisplay, oSelectedImage);
//fade in gallery
Effects.FadeIn(oGallery, 25);
}
谁能帮帮我?
另外,我正在使用 IE10,我也尝试过 Chrome,结果相同。
谢谢,安迪