簡體   English   中英

svg變形而不翻轉

[英]svg morphing without flipping

我一直在嘗試找到一種簡單而自由的方法來在貝塞爾曲線形狀及其鏡像副本之間進行變形。 因為它們具有相同的分數,所以我認為這將是一件容易的事。 不是。 我嘗試了KUTE和SVG morpheus。 Kute正在執行不必要的垂直翻轉,Morpheus進行了不必要的水平翻轉( 此處為codepen )。 唯一能解決問題的javascript庫是付費的MorphSVG插件。 這里的codepen )很遺憾,我希望以后能找到更便宜的解決方案。 如果有人知道,請告訴我。

 var svgMorpheus = new SVGMorpheus('#icon', {rotation: "none"});
 var icons = ['question', 'answer'];
 var current = 0;

基於我的舊動畫的快速技巧: http : //jsfiddle.net/alkhoo/JwkYm/11/-將鼠標懸停以激活動畫。

注意:greensock動畫包含paths值。

  $(function () { //Grab an array of all the main SVG Elements var containers = $(".category .item a"); //Define some vars that we will use later var speed = 1000; var animation = mina.backout; //Loop through all of these containers and insert the SVG's containers.each(function (index) { //Get each of our SVG tags var s = Snap(".animated-overlay.svg-" + index); //Define our Paths var defaultWhitePath = "M1.8978756799999998,64.59785067199999 C4.5919579200000005,94.29202528 74.7848272,99.01918832 128.25879712,95.43520928 361.0060832,78.08572735999999 468.2360832,8.157339040000004 562.54879712,6.478409280000005 646.3748272,4.004430240000005 663.93195792,95.19048896 664.08987568,93.45505007999999 664.24724128,114.2054704 664.1263182399999,144.17150224 664.1263182399999,166.67625712 443.1668704,166.67625712 222.2168704,166.67625712 1.26631824,166.67625712 1.26631824,165.36156416 -0.8027587199999999,36.217596 1.8898756799999998,64.59746416 z"; //Define our Hover Paths var hoverWhitePath = "M0.6989956799999999,94.82189867199999 C0.6932379199999996,94.83954528000001 15.029627200000007,-2.205931680000006 100.71287712,0.6387292800000068 186.5548832,3.4719673599999936 293.78488319999997,81.96869904 535.00287712,100.48192928 586.6196272000001,104.43659024 660.0332379199999,93.83112896 662.89099568,62.42577008 665.7387612800001,31.0390704 663.55047824,166.25166224 663.55047824,166.27033712000002 442.6004704,166.27033712000002 221.65047040000002,166.27033712000002 0.6904782399999999,166.27033712000002 0.6904782399999999,142.47900416000002 0.6887612800000001,118.58159599999999 0.6909956799999999,94.81490416 z"; //Load up the default paths in the SVG var whitePath = s.path(defaultWhitePath); whitePath.attr({ fill: "#00f" }); //Let's group our paths, it doesn't seem like you can animate the whole group though :( var paths = s.group(whitePath); //Animate on Mouse Enter $(containers[index]).mouseenter(function () { whitePath.animate({ path: hoverWhitePath }, speed, animation); }); //Animate on Mouse Leave, return the paths to the default $(containers[index]).mouseleave(function () { whitePath.animate({ path: defaultWhitePath }, speed, animation); }); }); }); 
 body { background: #ddd; } .item { max-height: 300px; background: #ddd; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.4.1/snap.svg-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="category"> <div class="item" style="background-image: url('images/category.jpg');"> <a href="#" title="Category Title"> <svg viewbox="0, 0, 700, 300" preserveAspectRatio="none" class="animated-overlay svg-0"> </svg> </a> </div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM