この記事を参考に、動くように改良。
js
var counter = 1;
var startX = null, startY = null;
view.addEventListener('touchstart', function(e){
startX = e.x, startY = e.y;
});
view.addEventListener('touchmove', function(e){
if((counter % 5) == 0){
var x = (e.x - startX) + view.animatedCenter.x;
var y = (e.y - startY) + view.animatedCenter.y;
view.animate({top:y-viewHeight/2, left:x-viewHeight/2, duration:1});
counter = 0;
}
counter += 1;
});
view.addEventListener('touchend', function(e){
startX = null, startY = null;
});
e.x, e.yで取れるのはviewからの相対的な位置のようなので、最初にtouchした時点の位置を覚えておき差分を動かすように修正。