请教下各位~~有没有试过 长按 scroll的列表的元素,弹窗popover,然后如果在popover上滑动,背景也会跟随滑动。。
本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个问题看起来是关于前端开发中列表元素交互的一个具体实现细节。在Web或移动端开发时,如果你希望在长按列表元素后弹出Popover(浮动框),并且当用户在Popover上滑动时,背后的滚动区域不跟随滑动,这通常涉及到JavaScript事件的处理和阻止默认行为。
要实现这个功能,你可以采用以下技术方案:
使用第三方库:有许多成熟的前端UI库,如Bootstrap、Element UI(Vue)、Ant Design(React)等,它们提供了Popover组件,你可以直接使用这些库来快速实现基本的Popover功能。然后,你需要自定义事件处理逻辑以阻止背景滚动。
原生实现:如果你不使用现成的UI库,可以通过原生JavaScript或者框架特定的方式来实现。关键在于控制Popover显示时的触摸/滚动事件。
监听长按事件:可以使用ontouchstart
和ontouchend
事件来判断长按动作,或者使用第三方库如fastclick
优化移动端点击体验。
显示Popover:根据长按的位置和条件,动态显示Popover元素。
阻止背景滚动:
document.body.style.overflow = 'hidden'; // 阻止滚动
document.body.style.overflow = 'auto'; // 恢复滚动
处理Popover内部滚动:确保Popover内部如果有可滚动内容,其滚动行为不受影响。可能需要对Popover内部的滚动容器进行特定的事件委托或处理。
优化用户体验:考虑在Popover显示和隐藏时添加过渡动画,以及确保在不同设备和浏览器上的兼容性。
以上方法适用于大部分Web应用开发场景,无论是基于Vue、React还是其他前端框架。如果是在阿里云的产品环境下,比如DataV、低代码平台等,你可能还需要查阅相应平台的文档,了解如何在这些平台上定制交互逻辑。