-1

これらの滑らかなトランジション (線の描画と画像の移動) を行う方法を知りたいです。それが何と呼ばれているのか、それを行うために必要なもの、つまりcss、javascript、jquery、またはそれらすべての組み合わせ、またはフレームワークさえも教えていただければ幸いです。申し訳ありませんが、これを尋ねなければなりませんが、文字通り何と呼ぶべきかわかりません。

オンリーコインポリゴン

4

1 に答える 1

1

これを行うにはかなりの数の方法があります。必要なことを行うための組み込み/標準の方法はないため、いくつかの便利なスクリプトを次に示します: Raphael.jsおよび

JavaScript といくつかの CSS のみを使用するメソッドの場合、数学を使用して行をチェックするメソッドを次に示します。JSFiddle コードは次のとおりです。

var top = 0;
var left= 0;
var top2 = 0;
var left2 = 0;

$("#draw").css("background", "gray")
    //Check if even or not
    i = 0;
    $("#draw").on("click", function(e) {
       i++;
    //If even, draw line
        if (i%2 != 0) {
        //First point
        top = e.pageY
        left = e.pageX
        }
        else  {
        //Second point
        top2 = e.pageY
        left2 = e.pageX
        //Calculate difference
        heightdifference = top2-top;
        widthdifference = left2-left;
            //arcsin fix: x < -1 or x > 1 not allowed
            //I suck at this, maybe someone can find a better solution?
            divide =  (heightdifference/widthdifference < -1 || heightdifference/widthdifference > 1) ?  widthdifference/heightdifference : heightdifference/widthdifference
            //Rotate the line
        rotation = 180/Math.PI*Math.asin(divide)
            //Pythagoras
        width = Math.sqrt(Math.pow(heightdifference,2)+Math.pow(widthdifference,2))
            //Margin: Pythagoras 2
        a = width/2
        var b
        c = widthdifference/2
        margintop = Math.sqrt(Math.pow(a,2)-Math.pow(c,2))
            margintop = (rotation > 0) ? 0-margintop : margintop            
        $("<div>").css({
           "height": "2px",
           "background": "black",
           "width": width,
           "position": "absolute",
           "top": top,
           "left": left,
            "margin-top": 0-margintop,
            "-webkit-transform": "rotate("+rotation+"deg)",
            "-moz-transform": "rotate("+rotation+"deg)",
            "-ms-transform": "rotate("+rotation+"deg)",
            "-o-transform": "rotate("+rotation+"deg)",
            "transform": "rotate("+rotation+"deg)"

        }).appendTo("#draw")
        }           
    }) 

また、JavaScript を使用したアニメーションに関する役立つチュートリアルもここにあります。

申し訳ありませんが、あまり役に立ちませんでしたが、これが正しい方向に向かうことを願っています。

于 2013-11-15T01:40:59.637 に答える