Javascript 触摸事件在android上不起作用

Javascript 触摸事件在android上不起作用,javascript,android,Javascript,Android,我构建了一个聚光灯风格的覆盖层,在iPhone/平板电脑/和pc上运行良好,但在android设备上不起作用。以下是我的工作内容: <script type="text/javascript"> var spot = document.getElementById('spot'); var width = document.documentElement.clientWidth; var height = document.documentElement.clientHeig

我构建了一个聚光灯风格的覆盖层,在iPhone/平板电脑/和pc上运行良好,但在android设备上不起作用。以下是我的工作内容:

    <script type="text/javascript">
var spot = document.getElementById('spot');
var width = document.documentElement.clientWidth;
var height = document.documentElement.clientHeight;

/* A bit of JS to respond to mouse events */
function moveSpot(e){
    var x = 0;
    var y = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY)
    {
        x = e.pageX;
        y = e.pageY;
    }
    else if (e.clientX || e.clientY)
    {
        x = e.clientX + document.body.scrollLeft;
        y = e.clientY + document.body.scrollTop;
    }


    var style = '-webkit-gradient(radial, '+x+' '+y+', 0, '+x+' '+y+', 100, from(rgba(0,0,0,0)), to(rgba(0,0,0,1)), color-stop(0.8, rgba(0,0,0,0)))';

    spot.style.backgroundImage = style;
}

window.onload = function() {
    //window.onmousemove = moveSpot;
    window.ontouchmove = moveSpot;
}
</script>

var spot=document.getElementById('spot');
var width=document.documentElement.clientWidth;
变量高度=document.documentElement.clientHeight;
/*一点JS来响应鼠标事件*/
功能点(e){
var x=0;
var y=0;
如果(!e)var e=window.event;
如果(e.pageX | e.pageY)
{
x=e.pageX;
y=e.pageY;
}
else if(e.clientX | e.clientY)
{
x=e.clientX+document.body.scrollLeft;
y=e.clientY+document.body.scrollTop;
}
var style='-webkit渐变(径向,'+x+'+y+',0,'+x+'+y+',100,从(rgba(0,0,0,0)),到(rgba(0,0,0,1)),颜色停止(0.8,rgba(0,0,0,0));
spot.style.backgroundImage=样式;
}
window.onload=函数(){
//window.onmousemove=moveSpot;
window.ontouchmove=moveSpot;
}

如果您能就这个问题提供一些指导,我们将不胜感激。

我已经找到了答案。实际上,您需要将e.pageX和e.pageY更改为event.touchs[0]。pageX和event.touchs[0]。pageY也在代码调用event.preventDefault()中;这似乎解决了问题。

您的代码中没有任何addEventListener。你是忘了还是只是没有具体说明?(还是我不知道的速记?)