css3按钮好看的特效(一)

css3按钮好看的特效(一)

首先看一下如下效果,特效一是一个边框渐出的效果,需要运用到svg去实现

按钮
看看html结构很简单,一个按钮div中套着一个用来实现边线的svg和一个用来显示文字的div,在svg中需要加入一个rect是svg中的矩形。

 <div class="btn">
        <svg width="200" height="60">
            <rect width="200" height="60" class="rect"></rect>
        </svg>
        <div class="text">按钮</div>
    </div>

如何实现出有边线的效果需要了解的两个 stroke-dasharray和 stroke-dashoffset;
1. stroke-dasharray:表示的意思是边框虚线,两个参数或者多个参数时:一个表示长度,一个表示间距
  如:stroke-dasharray = ‘10, 5’ 表示:虚线长10,间距5,然后重复 虚线长10,间距5
  如:stroke-dasharray = ‘20, 10, 5’ 表示:虚线长20,间距10,虚线长5,接着是间距20,虚线10,间距5,之后开始循环

  
2. stroke-dashoffset:表示的是虚线的相对起始点的偏移量,这个需要结合着stroke-dasharray去使用不然没有效果,,正数偏移x值的时候,相当于往左移动了x个长度单位,负数偏移x的时候,相当于往右移动了x个长度单位。

理解两个的意思之后写出如下的css便会得出如上面动图所开始时文字下面一条线(实际是让线偏移到了下面其他的透明轮廓都是虚线的间隙)

 .rect{
            fill: transparent;
            stroke-width: 6;
            stroke: #ff6348;
            stroke-dasharray:  160 400;
            stroke-dashoffset: -281;
        }

实现边线慢慢恢复需要添加动画效果将stroke-dasharray的值设为边框的总长度(目的是为了让两边起到一个同时到达起点的视觉效果),然后恢复虚线的偏移量 stroke-dashoffset: 0,为了美观可以将它的线宽度变窄,我是让 stroke-width从6变到了2.

最后加上hover添加动画效果即可如下方css

@keyframes go {
     to{
           stroke-dasharray: 520;
           stroke-dashoffset: 0;
           stroke-width: 2;
       }
 }
.btn:hover .rect{
    animation: go 0.3s linear forwards;
}

~~~~~~~~~~~~~~~~ end ~~~~~~~~~~~~~~~~~

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值