JavaScript可以捕获滚动事件,但让点击通过吗?

时间:2017-01-31 04:27:15

标签: javascript html css scroll

我在这里有一个设置,但意识到用户必须能够与透明滚动捕获背后的层进行交互:

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

scrollerCapture = document.querySelector('.scroller-capture');
scrollerCapture.addEventListener('scroll', e => {
    e.preventDefault();
    console.log(scrollerCapture.scrollTop);
});

有谁知道这样做的标准方法?我应该使用像iScroll或ScrollMagic这样的功能来在移动设备上获得这种效果吗?

由于

2 个答案:

答案 0 :(得分:0)

<div>标记中提及onscroll事件。例如

<div id="someID" onscroll="someFunction();">

然后在相应的html文件中执行以下操作

<script>
function someFunction() {
        //work done when scroll is detected
    };
</script>

感谢。我希望这会有所帮助。

答案 1 :(得分:0)

您可以使用

elementFromPoint()

在特定的鼠标坐标处找到DOM。

  

返回的Document接口的elementFromPoint()方法   指定坐标处的最顶层元素。   https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint

找到DOM元素后,您可以单击它来执行。

element.click();

https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click

快速举例:

document.addEventListener('click', e => {
  var dom = document.elementFromPoint(e.pageX, e.pageY);
  dom.click();
})

也许您有兴趣,有一个名为:

的CSS属性

pointer-events: none;

允许鼠标事件通过。

  

CSS属性指针 - 事件允许作者控制什么   情况(如果有的话)特定的图形元素可以成为   鼠标事件的目标。

     

除了表明该元素不是鼠标的目标   事件,值none指示鼠标事件“通过”   元素和目标代替那个元素的“下面”。 https://developer.mozilla.org/en/docs/Web/CSS/pointer-events