eme*_*his 23 javascript css iphone mobile-safari ios
当用户点击页面边缘时,我不希望我的网站内容晃动.我只想让它停下来.
我到处看到的全方位javascript解决方案是这样的:
$(document).bind(
'touchmove',
function(e) {
e.preventDefault();
}
);
Run Code Online (Sandbox Code Playgroud)
但这可以完全阻止滚动.有没有办法去除反弹.最好使用CSS或元标记而不是JS,但任何有效的方法都可以.
Mic*_*l P 20
我必须添加另一个答案.我的第一种方法应该可行,但是,有一个iOS错误,即使是e.stopPropagation,它仍会使整个页面变得麻烦.
mikeyUX找到了解决方法:https://stackoverflow.com/a/16898264/2978727 我想知道为什么他只是点击这个好主意点击几下...
这就是我在我的案例中使用他的方法:
var content = document.getElementById('scrollDiv');
content.addEventListener('touchstart', function(event) {
this.allowUp = (this.scrollTop > 0);
this.allowDown = (this.scrollTop < this.scrollHeight - this.clientHeight);
this.slideBeginY = event.pageY;
});
content.addEventListener('touchmove', function(event) {
var up = (event.pageY > this.slideBeginY);
var down = (event.pageY < this.slideBeginY);
this.slideBeginY = event.pageY;
if ((up && this.allowUp) || (down && this.allowDown)) {
event.stopPropagation();
}
else {
event.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
Mic*_*l P 12
通过阻止文档的默认行为来禁用弹跳:
document.addEventListener("touchmove", function(event){
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
允许滚动以防止触摸到达文档级别(阻止滚动的位置):
var scrollingDiv = document.getElementById('scrollDiv');
scrollingDiv.addEventListener('touchmove', function(event){
event.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
注意这两者之间的区别:
event.stopPropagation()
event.preventDefault()
Run Code Online (Sandbox Code Playgroud)
StopPropagation应该是你的选择!这是一个非常好的解释:http: //davidwalsh.name/javascript-events
编辑:同样的问题,相同的解决方案: 在iOS 5上的document.ontouchmove和滚动
Edit2:修改了变量名中的拼写错误,在方法后添加了括号
小智 6
如果适用于桌面浏览器,不需要任何 JavaScript 代码,只需几行 CSS 代码:
html {
height : 100%;
overflow: hidden;
}
body {
height : 100%;
overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了在 stackoverflow 上找到的许多不同方法,但 iNoBounce 才是真正对我有用的方法: https: //github.com/lazd/iNoBounce
我刚刚将其包含在我的index.html 中:
<script src="inobounce.js"></script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
60482 次 |
最近记录: |