请问哪里有源码下载呢

来源:6-4 总结

roadson

2015-08-12 17:07

右下角只有pdf下载, 请问哪里有源码下载呢 ?

写回答 关注

1回答

  • 求知的木头
    2015-10-12 01:26:03

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title></title>
    </head>
    <style>
    html,body{
           margin: 0;
           padding: 0;
           width: 100%;
           height: 100%;
           background: #001122;
           line-height: 0;
           font-size: 0;
       }
    </style>
    <body>
       <svg width="100%" height="100%" viewBox="-400 -300 800 600" preserveAspectRatio="xMidYMid slice">
           <defs>
               <polygon id="star" points="0 -10 2 -2 10 0 2 2 0 10 -2 2 -10 0 -2 -2" fill="white"></polygon> //星星
    </defs>
           <g id="real">  //真是图形
    <g id="star-group"></g>
               <g id="moon-group">  //月牙
    <mask id="moon-mask">  //用2个圆画出月牙的图形,在用蒙板效果遮罩下面黄色的圆
    <circle cx="-250" cy="-150" r="100" fill="white"></circle>
                       <circle cx="-200" cy="-200" r="100" fill="black"></circle>
                   </mask>
                   <circle cx="-250" cy="-150" r="100" fill="yellow" mask="url(#moon-mask)"></circle>
               </g>
               <g id="light-tower" transform="translate(250,0)">
                   <defs>
                       <linearGradient id="tower" x1="0" y1="0" x2="1" y2="0">  //灯塔渐变色
    <stop offset="0" stop-color="#999"></stop>
                           <stop offset="1" stop-color="#333"></stop>
                       </linearGradient>
                       <radialGradient id="light" cx="0.5" cy="0.5" cr="0.5">  //灯塔光渐变色也就是椭圆的渐变色
    <stop offset="0" stop-color="rgba(255,255,255,.8)"></stop>
                           <stop offset="1" stop-color="rgba(255,255,255,0)"></stop>
                       </radialGradient>
                       <clipPath id="light-clip"> //裁切图形  用下面的图形裁切   得到重叠的部分
    <polygon points="0 0 -400 -15 -400 15" fill="rgba(255,0,0,.5)">
                               <animateTransform
    attributeName="transform"
    attributeType="XML"
    type="rotate"
    from="0"
    to="360"
    dur="10s"
    reqeatCount="indefinite">
                               </animateTransform> //灯塔旋转特效
    </polygon>   //灯塔光的三角
    <circle cx="0" cy="0" r="2"></circle>  //灯塔顶上的小圆点
    </clipPath>
                   </defs>
                   <polygon points="0 0 5 50 -5 50" fill="url(#tower)"></polygon>  //灯塔
    <ellipse cx="0" cy="0" rx="300" ry="100" fill="url(#light)" clip-path="url(#light-clip)"></ellipse>//椭圆  clip-path:引用图形
    </g>
           </g>
           <g id="reflact" transform="translate(0,50)" mask="url(#fading)">  //湖面投影
    <defs>  //投影的蒙板颜色渐变
    <linearGradient id="fade" x1="0" y1="0" x2="0" y2="1">
                       <stop offset="0" stop-color="rgba(255,255,255,.3)"></stop>
                       <stop offset="1" stop-color="rgba(255,255,255,0)"></stop>
                   </linearGradient>
                   <mask id="fading">
                       <rect x="-400" y="0" width="800" height="300" fill="url(#fade)"></rect> //矩形
    </mask>
               </defs>
               <use xlink:href="#real" transform="scale(1,-1) translate(0,-50)"></use>//图形反转并且移动Y位子,use里面不能加mask
    </g>
    <!-- <line x1="-400" y1="0" x2="400" y2="0" stroke="white"></line>  水平参考线-->
    <line x1="-400" y1="50" x2="400" y2="50" stroke="white"></line>
       </svg>
    </body>
    <script>
    var SVG_NS = 'http://www.w3.org/2000/svg';
    var XLINK_NS = 'http://www.w3.org/1999/xlink';
    var paper = document.querySelector('svg');
    renderStar();
    function use(origin){
    var _use = document.createElementNS(SVG_NS,'use');  //createElementNS() 方法可创建带有指定命名空间的元素节点
    _use.setAttributeNS(XLINK_NS,'xlink:href','#'+origin.id);  //setAttributeNS() 方法创建或改变具有命名空间的属性
    return _use;
       }
    function random(min,max){
    return min +(max-min)*Math.random();
       }
    function renderStar(){
    var starRef = document.getElementById('star');  //获取星星
    var starGroup = document.getElementById('star-group');//把星星放在star-group里面
    var starCount = 500;//星星的个数
    var star;
    while (starCount--){
    star = use(starRef);
    star.setAttribute('opacity',random(0.1,0.4));
    star.setAttribute('transform','translate('+random(-400,400)+','+random(-300,50)+')'
    +'scale('+random(0.1,0.6)+')'); //random() 方法可返回介于 0 ~ 1 之间的一个随机数.scale() 方法标注画布的用户坐标系统
    starGroup.appendChild(star);
           }
       }
    </script>
    </html>

走进SVG

SVG是HTML5 中矢量图的标记语言,学习后掌握更多的干货

52686 学习 · 223 问题

查看课程

相似问题