Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 jquery,滚动时在某个位置查找div类名_Javascript_Jquery - Fatal编程技术网

Javascript jquery,滚动时在某个位置查找div类名

Javascript jquery,滚动时在某个位置查找div类名,javascript,jquery,Javascript,Jquery,固定div(fixed_div)停留在顶部,以便在其内部显示谷歌地图。然后一个大div(big\u div)留在它下面。大div中有许多小div,classsmall\u div。每个小div都有一个idsmall\u div\u n,其中n=0,1,2,3。。连续地。大div在固定div下滚动 HTML: 小div具有可变高度属性 如果我能够知道一个新的small_div已经到达固定div的下部,我可以找到小div对应的id,并且可以通过ajax调用理解固定div中要显示哪个google ma

固定div(
fixed_div
)停留在顶部,以便在其内部显示谷歌地图。然后一个大div(
big\u div
)留在它下面。大div中有许多小div,class
small\u div
。每个小div都有一个id
small\u div\u n
,其中n=0,1,2,3。。连续地。大div在固定div下滚动

HTML:

小div具有可变高度属性

如果我能够知道一个新的
small_div
已经到达固定div的下部,我可以找到小div对应的
id
,并且可以通过ajax调用理解固定div中要显示哪个google map

如何感觉新的
小div
已到达固定div的下部

编辑:大div有一个
最小高度
属性。


<script>
(function() {
    var fixed = $('div.fixed_div');
    $(window).on('scroll',function() {
    var currentFixedDivPosition = fixed.position().top + fixed.height() + $(window).scrollTop();
    var temp, whichOne;
        $('div.small_div').each(function(i,s) {
        var diff = Math.abs($(s).position().top - currentFixedDivPosition);
            if(temp) {
                    if(diff < temp) {
                        temp = diff;
                        whichOne = s;
                    }
            }else {
                temp = diff;
                whichOne = s;
            }           
        });
        console.log(temp, $(whichOne).attr('id') + ' was closest');
    });
})();
</script>
(功能(){ 固定价值=$('div.fixed_div'); $(窗口).on('scroll',function(){ var currentFixedDivPosition=fixed.position().top+fixed.height()+$(window.scrollTop(); var temp,whichOne; $('div.small_div')。每个函数(i,s){ var diff=Math.abs($(s).position().top-currentFixedDivPosition); 如果(临时){ if(温差<温度){ 温度=温差; whichOne=s; } }否则{ 温度=温差; whichOne=s; } }); log(temp,$(whichOne).attr('id')+'是最近的'); }); })();

这里有一把小提琴:,我不确定我是否正确理解了你想要什么,但我希望这至少能给你一些开始祝你好运

希望下面的代码能够达到目的

  • 我添加了一个代码,可以动态地将一个小DIV元素附加到一个大DIV元素
  • 然后我添加了一个事件监听器,它可以检测到big_div中的任何新条目
  • //单击按钮时,系统将追加一个新的DIV
    document.getElementById(“add”).addEventListener(“单击”,函数)(){
    addDiv();
    });
    //一个事件监听器,它可以监听任何新添加到big_div的元素
    $('big_div')。on('DOMNodeInserted',函数(e){
    //这里我得到最后添加的元素的id
    var newdivid=document.getElementById(“big_div”).lastChild.id;
    document.getElementById(“div_status”).innerHTML=“添加了新的小div,id:”+newdivid;
    });
    函数addDiv(){
    var smalldiv=document.createElement(“div”);
    //这里我将新创建的DIV的id设置为任意随机字符串
    setAttribute(“id”,Math.random().toString(36.slice(-5));
    appendChild(document.createTextNode(“小div”);
    document.getElementById(“big_div”).appendChild(smalldiv);
    }
    .fixed\u div{
    位置:固定;
    高度:100px;
    }
    .大分区{
    填充顶部:100px;
    }
    ·小分区{
    最小高度:10px;
    }
    
    固定div
    

    无状态

    第0分部
    添加小DIV
    为什么不检查控制台并从中查找元素?哪个元素?如何以及何时在控制台中登录任何内容?@IstiaqueAhmed-如果您想对您的问题给予更多关注,请提供奖励。在不相关的问题上留下“请帮助我”的评论不会让你得到应有的关注。@StephenC,你是说提供赏金吗?@IstiaqueAhmed-是的,我是这个意思。(无论如何,我不会回答这个问题……jquery不是我的专业领域。但这就是悬赏的全部目的……吸引真正的专家!)
    <script>
    (function() {
        var fixed = $('div.fixed_div');
        $(window).on('scroll',function() {
        var currentFixedDivPosition = fixed.position().top + fixed.height() + $(window).scrollTop();
        var temp, whichOne;
            $('div.small_div').each(function(i,s) {
            var diff = Math.abs($(s).position().top - currentFixedDivPosition);
                if(temp) {
                        if(diff < temp) {
                            temp = diff;
                            whichOne = s;
                        }
                }else {
                    temp = diff;
                    whichOne = s;
                }           
            });
            console.log(temp, $(whichOne).attr('id') + ' was closest');
        });
    })();
    </script>