巧用svg 属性实现动画button

今天我们使用 svg rect 中的 stroke-dasharray 和stroke-dashOffset 来完成一个炫酷 的 按钮。

基本的html

     <svg width="400" height="400" viewBox="0 0 400 400">
        <rect x="20" width="80" y="20" height="30"></rect>
        <text x="60" y="40" text-anchor = 'middle'>HELLO</text> 
    </svg>

css

svg {
        width: 400px;
        height: 400px;
    }
    rect{
        fill: none;
        pointer-events: all;   // 在 ‘fill = none 的时候使用此属性才能使hover 效果生效’
        cursor: pointer;
        stroke: blue;
        stroke-width: 1px;
        stroke-dasharray: 20 60 20 10;
        stroke-dashoffset: 10;
        transition: all ease 0.4s;
    }
    rect:hover{
        stroke-dashoffset: 0;
        stroke-dasharray: 300;
    }

来看一下效果


效果

显而易见,我们可以看出,在动画的实现过程中,stroke-dasharray 和stroke-dashOffset在起作用。

用法超级简单,

学会这两个属性之后可以做很多有趣的动画,这里抛砖引玉,大家多多探索,欢迎私信交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上个项目用到svg实现一个水流的动画,鉴于没学习几天,所以懂的也不多,就此分享一下。首先svg是什么,svg可缩放...
    会飞的猪l阅读 4,164评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,024评论 25 708
  • 以此前对svg的了解,就是通过rect/circle/line……等绘制规则图形,或者利用path路径来绘制更...
    jacques_迹远阅读 6,904评论 1 6
  • 有些蔬菜本身含有毒素,如果未经过加热煮熟,它的毒素就无法去除,吃进人体可能就会得病。因此,以下蔬菜一定要煮熟!看仔...
    安侯_芳芳阅读 251评论 0 0
  • PART 1: Thoughts & Summary How do students learn best? 1....
    milaji阅读 219评论 1 0