我为窗口8.1平板电脑和窗口8.1 pc的IE11创建了一个网页。在此页面中,可以通过javascript处理滚动。
表示html,
<div style="overflow:hidden; -webkit-overflow-scrolling:touch; -ms-touch-action: none; touch-action: none; height: 100px" id="scrolledDiv">
<table id="ContentTable" cellpadding="0" cellspacing="0">
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
<tr>
<td>
aaa
</td>
</tr>
</table>
<div>
在javascript中,
var startY;
if (window.navigator.msPointerEnabled) {
document.getElementById('scrolledDiv').addEventListener("MSPointerDown",
function(e){
startY = e.pageY;
e.preventDefault();
}, false);
document.getElementById('scrolledDiv').addEventListener("MSPointerMove", function(e){
var touches = e.pageY;
// override the touch event’s normal functionality
e.preventDefault();
// y-axis
var touchMovedY = startY - touches;
startY = touches; // reset startY for the next call
document.getElementById('scrolledDiv').scrollTop = document.getElementById('scrolledDiv').scrollTop + touchMovedY;
}, false);
}
当用户进行触摸事件时,滚动条适用于窗口平板电脑8.1的IE 11。但是当用户在窗口8.1 pc的IE 11中移动鼠标时,它就像触摸事件一样工作。我不想在窗口8.1 pc的IE 11中的鼠标移动事件中获得滚动过程。我怎么能避免这个?谢谢大家。
答案 0 :(得分:0)
现在,我找到了解决方案。指针事件对象(e)中有pointerType属性。我将以下代码片段包装到我的代码中。
if (e.pointerType == 'touch'){
// your touch event code
}
指针类型支持触控,鼠标和笔。