我想拖拽一個容器使用transform轉換,但是有些東西導致了一個跳躍的行爲,我不知道是什麼原因。
更新:當它們的容器並非始終位於文檔的0,0處時,它必須對元素起作用。爲什麼用css轉換跳轉時拖動?
HTML:
<div id=container style="position:absolute;left:50px;top:50px;width:500px;height:500px;background-color:red;">
<div id=tcontainer style="position:relative;left:50px;top:50px;width:400px;height:400px;background-color:green;">
<div id=move style="position:relative;left:20px;top:20px;height:150px;width:150px;background-color:lightgray;">
</div>
</div>
的Javascript:
obj = {startPositionX:0,startPositionY:0};
$('#move').on("mousedown",function(){
var move = $(this);
obj.startPositionX=event.offsetX+$('#tcontainer').offset().left;
obj.startPositionY=event.offsetY+$('#tcontainer').offset().top;
$(document).on("mousemove",function(e){
console.log("dragging", e.pageX-obj.startPositionX, e.pageY-obj.startPositionY);
move.css('transform','translate('+(e.pageX-obj.startPositionX)+'px, '+(e.pageY-obj.startPositionY)+'px)');
});
});
$(document).on("mouseup",function(){
$(this).off("mousemove");
});
這是一個原創的概念/實現還是你有一個工作,非乾的例子,你工作?如果它是一個新的CSS轉換使用,它非常聰明,但可能會因爲js引擎到DOM到CSS呈現之間的延遲而變得不穩定。 – Anthony
http://css-tricks.com/snippets/jquery/draggable-without-jquery-ui/ – Anthony
不,我正在處理一個我想用轉換屬性導出的svg項目。這只是我做的一個例子。 – shuji