使用什麼比jQuery lib更多;我正在嘗試在拖動它的右邊框時調整DIV
的大小。它可以與鼠標完美配合,但無法在觸控設備上使用。我認爲這與e.touches
有關。使用觸摸調整HTML元素的大小
我試過用e.touches
和e.targetTouches
;他們似乎都沒有工作。
我在執行touch events
部分權利?我錯過了什麼?
這是一個fiddle,以及下面的完整代碼。
HTML:
<div class="container"><div class="handle"></div></div>
CSS:
.container{background:#CCC;width:200px;height:100px;position:relative;overflow:hidden;}
.handle{cursor:e-resize;height:100px;width:2px;position:absolute;top:0;right:0;background:red;}
JS:
var handle = null;
$(".handle").on('mousedown touchstart', function(e){
handle = {
x : e.pageX,
p : $(this).parent(),
pw: $(this).parent().width()
};
if (e.targetTouches){ //e.touches
handle.x = e.targetTouches[0].pageX //e.touches[0]
}
e.preventDefault();
});
$(document).on({
'mousemove touchmove':function(e){
if(handle) {
if (e.targetTouches){ //e.touches
handle.p.width(handle.pw+(e.targetTouches[0].pageX - handle.x)); //e.touches[0]
}else{
handle.p.width(handle.pw+(e.pageX - handle.x));
}
}
e.preventDefault();
},
'mouseup touchend':function(e){
handle = null;
e.preventDefault();
}
});
任何幫助,將不勝感激!
你有沒有打開你的JavaScript控制檯或檢查員,看看是否有任何錯誤彈出?只是要知道事件是否真的在觸摸屏設備上正常觸發。 – marcio
@marcioAlmada謝謝,實際上console.log()在附加if(e.touches)或if(e.targetTouches) – Pierre