0

画像をクリックしてドラッグするキャンバスがありますが、開始点に「スナップ」し続けるため、非常に面倒です。自分の論理で犯した間違いを解決できない理由がわかりません。

私のmousemoveイベントは:

function updt(evt) {
        var difx = evt.pageX - clickx;
        var dify = evt.pageY - clicky;
            offsets.cur_offsetx = init_offsetx - difx; 
            offsets.cur_offsety = init_offsety - dify;

        if (offsets.cur_offsetx < 0) {
                offsets.cur_offsetx = 0; 
                clickx = evt.pageX;
        }

        if(offsets.cur_offsety < 0){
                offsets.cur_offsety = 0; 
                clicky = evt.pageY; 
        }
    }

問題を再現するためにjsfiddleを作成しました:http://jsfiddle.net/jQkNv/1/

マウスをクリックして右にドラッグすると、画像が元の開始点にスナップし続けます。

これを修正するにはどうすればよいですか?

4

1 に答える 1

3

ライブデモ

それを次のように変更するとうまくいきました。

    if (offsets.cur_offsetx <= 0) {
            offsets.cur_offsetx = 0; 
    }

    if(offsets.cur_offsety <= 0){
            offsets.cur_offsety = 0; 
    }

編集x更新を停止しyましたが、動作しているようです。

于 2013-08-05T03:16:26.640 に答える