javascript - 在禁止了页面的触摸拖动事件之后如何允许某div可以拖动
高洛峰
高洛峰 2017-04-10 14:44:52
[JavaScript讨论组]

针对 IOS 上的 safari
目的是禁止默认的拖动事件
但允许其中某p的滚动拖拽

禁止拖动的默认事件

document.body.ontouchmove=function(e){
    e.preventDefault();
}

下面链接的搜索按钮打开之后的列表需要拖动
但要禁止全局拖动(带反弹效果的默认拖动效果)
http://itorr.sinaapp.com/fm


补充
还有个奇怪的现象 在触发了设置IOS safari特有的滚动样式的p的拖动事件 页面会自动禁止惯性拖动 猜测可能可以利用这个特性

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
ringa_lee

你只是把 body 中的 touchmove 事件 prevent 掉了。
捕获到你想要拖动的 p 的 touchmove 事件就行了。

javascriptdocument.querySelectorAll('p')[0].ontouchmove = function(e) {
  // do something    
  ...
};
PHPz

问题解决T_T 犯蠢了。。。

禁止body的触摸移动的默认动作之后

document.body.ontouchmove=function(e){
    e.preventDefault();
}

在需要滚动拖拽的p上停止冒泡即可解决OAQ

p.ontouchmove=function(e){
    e.stopPropagation();
    //停止冒泡
};
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号