Javascript 在Raphael中设置路径坐标更改动画

Javascript 在Raphael中设置路径坐标更改动画,javascript,animation,svg,raphael,Javascript,Animation,Svg,Raphael,Background:我正在使用拉斐尔(Raphael)为一系列带有child的创建动画边框效果,以下是我迄今为止的JS(通过改变笔划颜色以确保我具有正确的悬停功能): 只需输入新的“路径”属性即可设置动画。所以只要修改端点…悬停函数就会这样改变 关于路径动画-你看到了吗?@EliranMalka我看到了,谢谢-我一直在尝试调整源代码,看看这是否给了我任何想法,但到目前为止,我还没有能够动画任何坐标变化。谢谢@ian!我试图在.animate中指定一个新的路径,但未能指定-这太完美了。 //p

Background:我正在使用拉斐尔(Raphael)为一系列带有child
  • 创建动画边框效果,以下是我迄今为止的JS(通过改变笔划颜色以确保我具有正确的悬停功能):


    只需输入新的“路径”属性即可设置动画。所以只要修改端点…悬停函数就会这样改变


    关于路径动画-你看到了吗?@EliranMalka我看到了,谢谢-我一直在尝试调整源代码,看看这是否给了我任何想法,但到目前为止,我还没有能够动画任何坐标变化。谢谢@ian!我试图在
    .animate
    中指定一个新的
    路径
    ,但未能指定-这太完美了。
    //path coords before anim
    var paper = Raphael(document.getElementById("blog"), 142, 46);
    var btmleftcorner = paper.path("M0 36L0 46L10 46");
    var btmrightcorner = paper.path("M132 46L142 46L142 36");
    var toprightcorner = paper.path("M142 10L142 0L132 0");
    var topleftcorner = paper.path("M10 0L0 0L0 10");
    //path attrs
    btmleftcorner.attr({"stroke-width": "2"})
    btmrightcorner.attr({"stroke-width": "2"})
    toprightcorner.attr({"stroke-width": "2"})
    topleftcorner.attr({"stroke-width": "2"})
    //path attrs after anim
    $("#blog").hover(function () {
        btmleftcorner.animate({"stroke": "red"}, 300);
        btmrightcorner.animate({"stroke": "red"}, 300);
        toprightcorner.animate({"stroke": "red"}, 300);
        topleftcorner.animate({"stroke": "red"}, 300);
    }, function() {
        btmleftcorner.animate({"stroke": "black"}, 300);
        btmrightcorner.animate({"stroke": "black"}, 300);
        toprightcorner.animate({"stroke": "black"}, 300);
        topleftcorner.animate({"stroke": "black"}, 300);
    });
    
    $("#blog").hover(function () {
        btmleftcorner.animate({"stroke": "red", path: "M0 36L0 46L146 46" }, 300);
        btmrightcorner.animate({"stroke": "red", path: "M132 46L142 46L142 0"}, 300);
        toprightcorner.animate({"stroke": "red", path: "M142 10L142 0L132 0 0 0"}, 300);
        topleftcorner.animate({"stroke": "red", path: "M10 0L0 0L0 46"}, 300);
    }, function() {
        btmleftcorner.animate({"stroke": "black", path: "M0 36L0 46L10 46"}, 300);
        btmrightcorner.animate({"stroke": "black", path: "M132 46L142 46L142 36"}, 300);
        toprightcorner.animate({"stroke": "black", path: "M142 10L142 0L132 0"}, 300);
        topleftcorner.animate({"stroke": "black", path: "M10 0L0 0L0 10"}, 300);
    });