2014-07-24 33 views
0

你可以從hammerjs.github.io網站上看到,當你拖動,輕掃,捏或旋轉的白色方塊的位置,它會重置到其默認位置。我已經嘗試過,但未能阻止這種行爲,我不希望它重新回到原來的位置。我選擇這個例子,因爲它是與在Windows Phone 8防止元素重置爲默認的hammerjs.github.io樣本頁面(錘JS ver2.0.1)

我這樣做的方式抵消resetElementEnd()onSwipe函數內部運行我的地圖項目適合唯一的例子,我也被抵消

mc.on("panstart rotatestart pinchstart", resetElementStart); 
mc.on("panend rotateend pinchend pancancel rotatecancel pinchcancel", resetElementEnd); 

但是,每當我平移它時,它就會重置回它的默認位置,然後它可以被平移,並且這似乎是許多問題的根源。我知道這與startX和startY有關,但我並沒有真正明白它們的用途。

var startX = Math.round((el.parentNode.offsetWidth - el.offsetWidth)/2); 
var startY = Math.round((el.parentNode.offsetHeight - el.offsetHeight)/2); 
... 

function onPan(ev) { 
    transform.translate = { 
     x: startX + ev.deltaX, 
     y: startY + ev.deltaY 
    }; 
    requestElementUpdate(); 
} 

這裏是鏈接包括HTML,CSS和JS文件,這基本上是hammerjs.github.io樣品的簡化版本,該index.js文件是原始文件和modifiedIndex.js是相同的文件,但與我取消了我上面提到的一些行。 https://www.mediafire.com/?y7wvady7bhmyrs9

這個庫是美好的,我希望我能在我的項目實施。感謝您的任何幫助/建議。

回答

1

您必須記住光標的最後位置。

上resetElementEnd(),您將節省的翻譯X和Y

function resetElementEnd() { 

    startX = transform.translate.x; 
    startY = transform.translate.y; 

    el.className = 'animate'; 
    requestElementUpdate(); 
} 

確保您有充分創建的轉換對象: 上線88更換

var transform; 

var transform = { 
    translate: { x: startX, y: startY }, 
    scale: 1, 
    rotate: 0 
}; 

希望這有助於