当声明doctype html时,我的代码停止工作,因此不会触发事件拖动或触摸。
我正在原型中将图像元素拖到容器元素中进行裁剪。我还将实现缩放以进行缩放等。为了使此功能在移动浏览器上更好地工作,我需要在文档的开头设置此项,以帮助防止双击和其他不必要的事件触发:
您可以找到一个有效的示例,而无需声明doctype:
http://jsbin.com/cokil/5
如果我确实声明了doctype并放置了元视口,它将停止工作,但我似乎无法理解原因:
http://jsbin.com/cokil/4
它也已经过测试,仅添加了doctype而没有meta视口。根本不会工作!
有什么提示或建议吗?
感谢您的光临!
最佳答案
声明DOCTYPE
时,页面告诉浏览器严格呈现该页面。如果仅省略声明,它将使用所谓的Quirksmode。
因此,很明显,您的代码不符合添加<!DOCTYPE html>
时使用的HTML 5严格模式。
希望这是您需要的建议。
编辑:
我发现了导致您的脚本无法正常工作的原因。在您的drag
事件中:只需将旧行替换为:
imgEl.style.top = y + parseFloat(event.gesture.deltaY)+'px';
imgEl.style.left = x + parseFloat(event.gesture.deltaX)+'px';
严格模式要求您返回数字值,后跟
px
,就像在样式属性style="top:0px; left:0px;"
中定义它一样。关于javascript - 为什么声明doctype html阻止事件拖动或触摸触发?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21780121/