published on

hackathon_Match(3)

Match


恭喜你,来到了我们的result页面,我们很快就能看到我们的match分数啦~是不是很期待?
我们先来公布一份超级有爱的match结果~

大家可以看到我们的页面上有显示相对应应用中的共同项
这里我决定只显示有共同项的应用版块,这里采用的方法是在判断每一个版块上所返回的字符串是否为空,代码如下,若info.douban.book为空,则v-show=“false”,该板块就不会显示

<div class="common" v-show = "info.douban.book">
          <div class="common_t">共同看过的小说:</div>
          <div class="common_t">
            {{info.douban.book}}
          </div>
        </div>
      </div>

好的,接下来就是我们显示match指数的的百分比图了,动态效果请戳piechart

<template>
        ...
    <svg viewBox = "0 0 32 32">
    <circle class="circle" r = "16" cx = "16" cy ="16" v-bind:style = "{strokeDasharray:Math.floor(score) + ' 100'}"></circle>
    </svg>
        ...
 </template>

<style>
        ...
      svg{
        width: 100px;
        height: 100px;
        transform: rotate(-90deg);
        border-radius: 50%;
      }
      .circle{
        fill:transparent;
        stroke:#e1484b;
        stroke-width:6px;
        animation: fillup 1s ease-out forwards; 
      }
      @keyframes fillup{
        from{stroke-dasharray: 0 100;}
      }
        ...
</style>

我们将采用svg标签来画这个百分比图,用stroke属性来实现动态变化效果
svg的viewBox顾名思义就是视区盒子的意思,它覆盖整个svg图,我们在style中定义svg是一个半径为50px的圆,那么viewBox = “0 0 32 32”只是内部将此圆的半径长分为32份,而circle中的r代表此圆的半径,相对于viewBox而言的16,既是整个svg图的一半,cx,cy是其圆心坐标,处于svg图的正中心。
接下来看它的动态效果如何实现,这里我们仍然需要用svg的stroke属性,stroke会沿着svg图像(此处为一个半径为50的圆)的边界划出一条线,我们再用animation属性使其产生变化的效果。这样一个piechart就完成啦


好啦,你还等什么,赶紧去寻找你和你的TA的相同点吧~