gpt4 book ai didi

javascript - 使用原始 javascript 淡化 HTML 元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:59 25 4
gpt4 key购买 nike

这是我当天的第二个问题,与同一问题有关,因此我深表歉意。

我能够组合一个函数来“淡出”一个元素,它工作得很好,我的问题是当我尝试反转它时,元素“淡入”这是行不通的。我试图改变显而易见的事实,但我无法理解我做错了什么。

到目前为止我的代码如下:

假设我有一个像这样的“div”:

<div id="test" style="width:200px; height:200px; display:block; opacity:1; background-color:red;"></div>

我用来淡出它的 JavaScript 函数是:

var getElement = document.getElementById('test');
function fadeOut(elem, speed){
if(!elem.style.opacity){
elem.style.opacity = 1;
}
var desvanecer = setInterval(function(){
elem.style.opacity -= .02;
if(elem.style.opacity < 0){
clearInterval(desvanecer);
}
}, speed / 50);
}
fadeOut(getElement, 500);

有人可以看看这个并让我知道我做错了什么,我想做的就是“淡入”一个不透明度等于“1”的元素。

顺便说一下,我不会使用 jQuery,但是我很想通过这种方式学习。

谢谢

我尝试反转函数如下:

var getElement = document.getElementById('test');
function fadeIn(elem, speed){
if(elem.style.opacity){
elem.style.opacity = 0;
}
var desvanecer = setInterval(function(){
elem.style.opacity += .02;
if(elem.style.opacity > 1){
clearInterval(desvanecer);
}
}, speed / 50);
}
fadeIn(getElement, 500);

最佳答案

setInterval 在全局范围内运行,因此您需要定义相对于窗口的计时器。

您不能连接从样式属性返回的字符串值和期待一个数字——你会得到“0.02.02.02.02”

从字符串中强制取出一个数字,然后添加 .02。

它会在一些浏览器中工作,但 IE 9 之前需要不同的表达方式设置和读取不透明度。

function fadeIn(elem, speed){
if(elem.style){
elem.style.opacity= '0';
}
window.fadetimer= setInterval(function(){
elem.style.opacity= +(elem.style.opacity)+.02;
if(elem.style.opacity> 1){
clearInterval(fadetimer);
}
},
speed);
}

关于javascript - 使用原始 javascript 淡化 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com