Javascript div 根据位置淡入淡出

标签 javascript function loops position

我想单击一个 div 并让它和其他 div 一个接一个地淡出。我希望一个 div 淡出和下一个 div 淡出之间的时间与 div 之间的距离成正比。

所有这些 div 都是一个更大的 div 的子元素。

我有淡化 div 的代码。我现在正在尝试编写一个函数,该函数将查看每个像素的父 div 的宽度,并在遇到任何 div 时淡化它们。

这是javascript:

function sweep(){
    var n3_position = #note_3.position();
    for (i=0;i<900;i++){
        if n3_position.left == i {
            fade('note_3');
        }
    }
}
function fade(el){
    setTimeout(function(){
        $(el).fadeOut("slow",function(){
            document.getElmentById(el).style.display="none";
        }); 
    }, 100);
}

这是相关的 HTML:

<a onclick="sweep()"><div id="note_1"></div></a>

因此,一旦 for 循环变量 i 等于第三个音符左侧的 x 位置,单击第一个音符(div 是音符)应该会导致第三个音符淡出。最终 sweep() 将为所有 div 位置创建变量并检查它们中的每一个,但现在,为了测试,它只是这个。父div是900px宽,所以这就是for循环上限的原因。

现在发生的一切都不算什么。

感谢所有帮助。提前感谢您的专家帮助。

-Oijl

最佳答案

我认为您的第一个函数有一些错误。试试下面这样的东西,看看它是否更适合你。

function sweep(){
    var n3_position = document.getElementById('note_3').offsetLeft;
    for (i=0;i<900;i++){
        if (n3_position == i) {
            fade('note_3');
        }
    }
}

您在循环中的 if 条件周围缺少括号。此外,#note_3 不返回该元素,因此它是无效的。

此外,第二个函数中还有一些错误。以下是一些可以帮助您入门的内容:

function fade(el){
    setTimeout(function(){
        $('#' + el).fadeOut("slow");
    }, 100);
}

您错过了您将需要的“#”,因为您是通过 Id 引用该元素。此外,您可能不需要将显示样式更改为无,因为 fadeOut 方法会为您处理。

关于Javascript div 根据位置淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889645/

相关文章:

javascript - Google Cloud 功能的 console.log 信息显示在哪里

javascript - Web 方法仅在标记为静态时才有效,否则无效

c - 在c中写一个函数指针

r - 将值添加到 R 中 for 循环内的向量

java - 如何修复Java中的扫描仪在一段时间内工作?

c++ - 如何将基本嵌套循环转换为 C++ 中的递归

javascript - 使用 $.grep 将数组数据与另一个数组匹配

javascript - 如何在 C# 中调用 javascript 函数

php - Javascript 元素 .value 没有按我预期的方式变回

c# - 循环遍历类中的字符串