我正在开发一个有很多表单的网站。我发现,当你在iPhone上滚动/滑动网站时,如果你的手指在输入字段上,页面不会滚动。要滚动,你必须将手指放在body上。
有人有什么想法是什么导致了这种奇怪的行为吗?
这只是简单的包含在form标签中的输入。
function setTextareaPointerEvents(value) {
var nodes = document.getElementsByTagName('textarea');
for(var i = 0; i < nodes.length; i++) {
nodes[i].style.pointerEvents = value;
}
}
document.addEventListener('DOMContentLoaded', function() {
setTextareaPointerEvents('none');
});
document.addEventListener('touchstart', function() {
setTextareaPointerEvents('auto');
});
document.addEventListener('touchmove', function() {
e.preventDefault();
setTextareaPointerEvents('none');
});
document.addEventListener('touchend', function() {
setTimeout(function() {
setTextareaPointerEvents('none');
}, 0);
});
这将使移动版Safari(其他浏览器目前未经测试)忽略文本区域的滚动,但允许像往常一样设置焦点等。