【发布时间】:2019-03-18 04:18:54
【问题描述】:
我有一个简单的 javascript 应用程序,它可以根据拖动速度旋转轮子。尽管存在一些错误,但它目前在浏览器中运行良好。我开始在我的 I-pad 上测试它,但 JavaScript 根本没有加载。我假设它遇到内部错误。我查看了它并在程序末尾运行了一个警报,依次取消注释每一行,drawFrame函数下的innerHtml修改中有挂断。我想知道我在这里缺少什么,我已经阅读了 ipad 支持的语法,但这让我感到困惑,为什么它不能继续运行。代码附在粘贴箱中以供参考。 https://pastebin.com/H19b0sN5。下面是一个会破坏显示的代码示例。
var drawFrame = function(){
if(isDragging){
var mouseAngle = getMouseAngle()
var delta = getAngleDelta(lastFrameMouseAngle, mouseAngle);
currentWheelAngle += delta;
lastFrameMouseAngle = mouseAngle
angleHistoryQueue.push(currentWheelAngle)
if (angleHistoryQueue.length > velocityAverageSpan){
angleHistoryQueue.shift()
}
}
else{
currentWheelAngle += angularVelocity
if( angularVelocity != 0){
var direction = angularVelocity / Math.abs(angularVelocity);
angularVelocity = direction * Math.max(Math.abs(angularVelocity) - deceleration, 0)
}
}
head.innerHTML = `<h1>${currentWheelAngle}</h1>`
wheelImage.style.transform = `rotate(${currentWheelAngle}deg)`
}
【问题讨论】:
-
那里有很多代码,我没有时间详细介绍,但它似乎都是基于鼠标事件的——
mousemove、mousedown等等。如果设备没有鼠标(例如 iPad),那么我不明白您为什么希望它能够工作...... -
我已经测试了鼠标事件,javascript 在 ipad 上运行时不会中断,我遇到的问题是整个脚本中断,注入的图像无法加载,等等,是的,Ipad 没有鼠标,但代码仍应运行。
-
哦,我现在知道你在哪里设置了
drawFrame函数中的问题。我注意到你在那里使用了“模板文字”,我刚刚检查过从 iOS 9.2 开始支持: caniuse.com/#feat=template-literals。不确定你有什么版本,如果 iPad 是几年前的,那可能是语法错误,因为不支持模板文字? -
我一定会在星期一来调查这件事,比你多罗宾。
标签: javascript ios ipad