• 自编SVG小案例


    1.转动的花朵导航

    实现思路:用svg中的path标签通过贝塞尔曲线画出一朵花瓣,然后其他四朵花瓣逐个转动相对应的角度,同时在添加a链接,最后添加连续运动的动画属性:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <style>
     7         svg{
     8             width: 100%;
     9             height: 100%;
    10             position: absolute;
    11             top: 0;
    12             left:0;
    13         }
    14         path{
    15             width: 100%;
    16             fill:#F6E6CC;
    17         }
    18     </style>
    19 </head>
    20 <body>
    21     <div id="nav">
    22         <svg xmlns="http://www.w3.org/2000/svg" version="1.1" >
    23             <g>
    24                 <a xlink:href="#home">
    25                       <path d="M150 150 C200 360, 360 200, 150 150 Z"   fill="#fff" />
    26                     <text x="170" y="210"  transform="rotate(45 200 220)" style="fill:#000;font-size:16px;">home</text>
    27                      <animateTransform attributeName="transform" begin="0s" dur="10s" type="rotate" from="0 150 150" to="360 150 150" repeatCount="indefinite"/>
    28                 </a>
    29             </g>
    30             <g>
    31                 <a xlink:href="#about">
    32                       <path d="M150 150 C200 360, 360 200, 150 150 Z"   fill="#fff" />
    33                     <text x="170" y="210"  transform="rotate(45 200 220)" style="fill:#000;font-size:16px;">about</text>
    34                  </a>
    35                  <animateTransform attributeName="transform" begin="0s" dur="10s" type="rotate" from="-72 150 150" to="288 150 150" repeatCount="indefinite"/>
    36             </g>
    37             <g>
    38                 <a xlink:href="#skill">
    39                       <path d="M150 150 C200 360, 360 200, 150 150 Z"   fill="#fff" />
    40                      <text x="170" y="210"  transform="rotate(45 200 220)" style="fill:#000;font-size:16px;">skill</text>
    41                  </a>
    42                   <animateTransform attributeName="transform" begin="0s" dur="10s" type="rotate" from="-144 150 150" to="216 150 150" repeatCount="indefinite"/>
    43             </g>
    44             <g>
    45                       <path d="M150 150 C200 360, 360 200, 150 150 Z"   fill="#fff" />
    46                 <a xlink:href="#portfolio">
    47                      <text x="170" y="210"  transform="rotate(45 200 220)" style="fill:#000;font-size:16px;">portfolio</text>
    48                  </a>
    49                   <animateTransform attributeName="transform" begin="0s" dur="10s" type="rotate" from="-216 150 150" to="144 150 150" repeatCount="indefinite"/>
    50             </g>
    51             <g>
    52                 <a xlink:href="#contact">
    53                       <path d="M150 150 C200 360, 360 200, 150 150 Z"   fill="#fff" />
    54                      <text x="170" y="210"  transform="rotate(45 200 220)" style="fill:#000;font-size:16px;">contact</text>
    55                  </a>
    56                   <animateTransform attributeName="transform" begin="0s" dur="10s" type="rotate" from="-288 150 150" to="72 150 150" repeatCount="indefinite"/>
    57             </g>
    58         </svg>
    59     </div>
    60 </svg>   
    61 </body>
    62 </html>
    一朵转动的小花

    2.一滴牛奶

    实现思路:通过贝塞尔曲线绘画路径

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script src="js/jquery-1.7.2.min.js"></script>
     7     <script src="js/nav.js"></script>
     8     <style>
     9         *{
    10             margin: 0;
    11             padding: 0;
    12         }
    13         li{
    14             list-style: none;
    15         }
    16         /*svg样式*/
    17         #blob{
    18             width: 100%;
    19             height: 100%;
    20             position: absolute;
    21             top: 0;
    22             left:0;
    23         }
    24         #blob_path{
    25             width: 100%;
    26             fill:#fff;
    27         }
    28         /*svg样式结束*/
    29         #nav{
    30             width: 100%;
    31             height: 100%;
    32             position: fixed;
    33             background: #FED057;
    34         }
    35         h1{
    36             text-align: center;
    37             margin-top: 200px;
    38             color: #fff;
    39         }
    40     </style>
    41 </head>
    42 <body>
    43     <div id="nav">
    44         <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="blob">
    45               <path id="blob_path" d="M0 0 H2000V0L0,0 Z" fill="#fff"/>
    46         </svg>
    47         <h1>点击网页预览效果</h1>
    48     </div>
    49 </body>
    50 </html>
    一滴牛奶html+css
     1 $(function(){
     2     var timer;//定时器
     3     var target_c5_c6_y=0;//目标值
     4     var current_c5_c6_y=50;//起始值
     5     var target_c6_c9_x=0;//目标值
     6     var current_c6_c9_x=50;//起始值
     7     var target_c3_y=0;//目标值
     8     var current_c3_y=50;//起始值
     9     var target_c4_c7_y=0;//目标值
    10     var current_c4_c7_y=50;//起始值
    11     var target_c8_y=0;//起始值
    12     var current_c8_y=50;//起始值
    13 
    14     blob = $('#blob'),
    15     blobPath = $('#blob_path'),
    16 
    17     $('body').click(function(){
    18         svgCurve(270,200,80,150,80);
    19     });
    20     //流体动画
    21     function svgCurve(tar1,tar2,tar3,tar4,tar5){
    22         var newCurve;
    23         target_c5_c6_y=tar1;//目标值
    24         target_c6_c9_x=tar2;//目标值
    25         target_c3_y=tar3;//目标值
    26         target_c4_c7_y=tar4;//目标值
    27         target_c8_y=tar5;//目标值
    28         timer=setInterval(function(){
    29             current_c5_c6_y=current_c5_c6_y+(target_c5_c6_y-current_c5_c6_y)/5;
    30             current_c6_c9_x=current_c6_c9_x+(target_c6_c9_x-current_c6_c9_x)/2;
    31             current_c3_y=current_c3_y+(target_c3_y-current_c3_y)/2;
    32             current_c4_c7_y=current_c4_c7_y+(target_c4_c7_y-current_c4_c7_y)/2;
    33             current_c8_y=current_c8_y+(target_c8_y-current_c8_y)/2;
    34             newCurve = "M0 0 C50 50,100 "+current_c3_y+" ,80 "+current_c4_c7_y+"  C40 "+current_c5_c6_y+", "+current_c6_c9_x+" "+current_c5_c6_y+", 160 "+current_c4_c7_y+"  C120 "+current_c8_y+","+current_c6_c9_x+" 0,2000 0  V0H0 Z";
    35             blobPath.attr('d', newCurve);
    36         },80);
    37     }
    38 
    39 });
    一滴牛奶nav.js
  • 相关阅读:
    .NET 事件模型教程(一)
    [转帖]Predicate的用法
    MSBuild入门(续)
    浅析C# 中object sender与EventArgs e
    调用一个按钮的Click事件(利用反射)
    Delegate,Action,Func,匿名方法,匿名委托,事件
    投票系统如何防止一个用户多次投票
    如何发送表单
    SharePoint NLB选Unicast还是选Multicast?
    为SharePoint的多台WFE配置Windows自带的NLB遇到的一个问题
  • 原文地址:https://www.cnblogs.com/nlj-blog/p/7340322.html
Copyright © 2020-2023  润新知