Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 元素变为可见时的增量?_Javascript_Jquery_Html_Css_Skrollr - Fatal编程技术网

Javascript 元素变为可见时的增量?

Javascript 元素变为可见时的增量?,javascript,jquery,html,css,skrollr,Javascript,Jquery,Html,Css,Skrollr,我正在使用skrollr插件 我有一套箭。一个指向下方,另一个指向上方。单击向下箭头时,将转到动画的下一节/章节。现在效果很好。但我的问题是,假设用户执行以下操作: 他/她滚动浏览页面的一半,如第5节。然后,他们决定看看还有多少动画。因此,他们单击下一节箭头 这个用户将被放到第2节,即使他们在第5节,因为我无法检测用户何时点击每个节,所以我可以更新箭头 我的想法是添加一个间隔/事件监听器,该监听器将检测DOM上的节何时可见,并更新箭头以引导您进入上一节和下一节 有人知道我如何处理这个想法吗?。。

我正在使用skrollr插件

我有一套箭。一个指向下方,另一个指向上方。单击向下箭头时,将转到动画的下一节/章节。现在效果很好。但我的问题是,假设用户执行以下操作:

他/她滚动浏览页面的一半,如第5节。然后,他们决定看看还有多少动画。因此,他们单击下一节箭头

这个用户将被放到第2节,即使他们在第5节,因为我无法检测用户何时点击每个节,所以我可以更新箭头

我的想法是添加一个间隔/事件监听器,该监听器将检测DOM上的节何时可见,并更新箭头以引导您进入上一节和下一节


有人知道我如何处理这个想法吗?。。。并且将在ie>=9中工作如果给元素一个类似visible的类,则可以使用jQuery选择所有可见元素:

$(".element.visible:last-of-type").on("click", function() {

});

如果为元素指定了visible类,则可以使用jQuery选择所有可见元素:

$(".element.visible:last-of-type").on("click", function() {

});

如果您愿意修改Skrollr库,我所做的是添加:

else if(prop === 'javascript') {
    eval(val);
}

作为skrollr.setStyle中的一个选项,它允许您使用data XXX=JavaScript:myFunction为元素(如此处的每个部分)上的任意JavaScript代码添加一个钩子;我相信Skrollr甚至会在你的论点中为你插入数字。

如果你愿意修改Skrollr库,我所做的就是添加:

else if(prop === 'javascript') {
    eval(val);
}


作为skrollr.setStyle中的一个选项,它允许您使用data XXX=JavaScript:myFunction为元素(如此处的每个部分)上的任意JavaScript代码添加一个钩子;我相信Skrollr甚至会在你的参数中为你插入数字。

如果你能控制单击“下一步”时执行的操作,你能检查滚动值以确定它在哪个部分之间,并打开它将它们发送到相应的部分吗?本质上,与其一直试图保持目标的最新状态(这是浪费/困难/容易出错的),不如在重要的时候——当单击发生时——计算它。

如果您可以控制单击“下一步”时执行的操作,您是否可以检查当时的滚动值以确定它位于哪个区段之间,并打开该区段以将其发送到相应区段?基本上,不要试图在任何时候都保持目标的最新状态,这是浪费/困难/容易出错的,只要在重要的时候——当点击发生时——计算它即可。

所有元素都已可见。这取决于我滚动到DOM时它们何时到达DOM。不需要单击事件。所有元素都已可见。这取决于我滚动到DOM时它们何时到达DOM。不需要单击事件。@Christian4423在当前版本中,此处为第1418行。@Christian4423唯一需要注意的是,Skrollr可能会调整属性值中出现的任何数字。所以你需要传递字符串或者像标志之类的东西。哈哈,我也只是传递一个数字而已。但是如何添加skrollr.setStyle?它是var s=skrollr.init{setStyle:true}@克里斯蒂安我不知道你是什么意思?setStyle是在内部调用的——这是Skrollr在解释数据属性后调用的,以实际修改元素的属性。因此,如果您添加了答案中的代码片段,然后在数据属性中添加一个javascript:property,那么它应该可以正常工作。一开始我会用console.log作为PoC。哦,我认为这是我必须打开的东西。但我刚意识到你的意思。。。对不起,今天是星期一!好吧,我在中添加了这个,我的函数没有被调用。让我看一下,然后back@Christian4423在这里的当前版本中,它将是第1418行。@Christian4423唯一需要注意的是,Skrollr可能会调整属性值中出现的任何数字。所以你需要传递字符串或者像标志之类的东西。哈哈,我也只是传递一个数字而已。但是如何添加skrollr.setStyle?它是var s=skrollr.init{setStyle:true}@克里斯蒂安我不知道你是什么意思?setStyle是在内部调用的——这是Skrollr在解释数据属性后调用的,以实际修改元素的属性。因此,如果您添加了答案中的代码片段,然后在数据属性中添加一个javascript:property,那么它应该可以正常工作。一开始我会用console.log作为PoC。哦,我认为这是我必须打开的东西。但我刚意识到你的意思。。。对不起,今天是星期一!好吧,我在中添加了这个,我的函数没有被调用。让我看一下,然后回来我本来想这么做的。但是我在文档中没有看到如何获取特定元素的滚动位置,以与s.getScrollTop值进行比较。@Christian4423我认为您使用的是relativeToAbsolute,比如rel
ativeToAbsoluteelement,当元素顶部位于视口顶部时,“顶部”、“顶部”将是滚动位置。@SuperBiasedMan我认为第一句话恰当地回答了这个问题。我本来想这样做。但是我在文档中没有看到如何将特定元素的滚动位置与s.getScrollTop值进行比较。@Christian4423我认为您使用的是relativeToAbsolute,比如relativeToAbsoluteelement,“top”,当元素顶部位于视口顶部时,“top”将是滚动位置。@SuperBiasedMan我认为第一句话恰当地回答了这个问题。