javascript - 通过`z-index`切换div时连续滚动
问题描述
我制作了一个应用程序,其中我有两个带有滚动事件处理程序的 div,并且我希望能够在使用它们的z-index
.
|---------- div 1 -----------| switch z-index |---------- div 2 -----------|
<------------------------- continuous scroll ---------------------------->
问题是,当z-index
切换发生时,滚动事件仍然由第一个 div 处理,直到我停止滚动并重新开始。
是否可以在 divs 事件处理程序变得可见时立即切换它们z-index
?
这是问题的一个工作示例https://codesandbox.io/s/rrrxyyjwwp,当我们放大 3d 地球时,视图切换到 2D 地图,我们希望 2D 地图开始放大该单一动作。Intead,滚动事件仍然由下面的 3D 地球处理,我们必须停止并重新启动滚动以缩放地图。
编辑:我也尝试通过使用 cssdisplay
属性来切换 div,结果是一样的
谢谢 !
解决方案
应该可以自己捕获和委托滚动事件,然后相应地更改 div 上的事件处理程序。
如果您创建一个附加了脚本的父容器,您可以使用它来确定当前位置、距离和可见元素。基于此,您可以更改 2 个交替元素的属性。粗略地说,像这样的设置应该可以解决问题:
$("#parent").scroll(function() {
//determine desired element to be active/inactive
var activeElementId = "element1";
var inactiveElementId = "element2";
setActive(activeElementId);
setInactive(inactiveElementId);
});
function setActive(elementId){
//add handler
}
function setInactive(elementId){
//remove handler
}
推荐阅读
- java - 多个微服务试图创建亚马逊存储桶
- kubernetes - Pachyderm 部署 GCP - 没有这样的图像
- javascript - 有没有办法在没有信息 c3.js 的情况下删除 y 刻度?
- ios - PYTHONPATH 在 macOS 上不适用于 sudo(如果我不使用 sudo 则有效)
- linux - 添加补丁和另一个 git 源在 yocto 中不起作用
- java - Tomcat log4j.xml 和 log4j2.xml 滚动日志配置为删除旧
- c# - 尝试使用 OCR 从屏幕上抓取一个单词而不消耗大量 CPU
- reactjs - 从类组件中的链接状态访问对象
- python - AttributeError:“DataFrame”对象在遍历列时没有属性“dtype”
- reactjs - 选择第一个值以外的值时自动提交下拉列表?