• 通过SVG与CSS3实现向上图标


    需求

    H5活动页需要用的图标很少,暂时没有使用iconfont的必要性,而通过图片的话额外增加UI的工作量以及增加请求数,前端也有很多实现简单图标的方法,所以就尝试自己去解决,写一个“返回顶部”的小图标。

    最终效果

    w200

    SVG

    先在纸上画一个坐标系,然后计算出大致每个点所在的坐标就可以通过path做一条闭合路径。

    <svg>
    	<path d="M50 25 L14 65 L50 45 L86 65 Z" style="fill: #fff"></path>
    </svg>
    

    效果演示:

    在实际应用中发现,虽然通过svg实现效果非常简单,只有一句代码,但是移动端采用的是rem的布局,图案位置定位总是对不准或者有偏差,在web或android上表现都可以,但是在ios与pc上需要重新调整位置,导致问题很棘手,主要是自己对svg的其他属性还不熟悉,不太会用。

    CSS3

    在svg方式之外也想了css3的实现方式并进行了实践,通过css3虽然在代码量上有所增加,但自己整体比较熟悉,可以控制其定位于位置,而且可以更方便的调整样式(svg需要不断结合坐标系思考)。

    思路:先画直角三角形,然后进行倾斜,同理,画另外一个方向相反的三角形。

    @ 200px;
    @height: 100px;
    @fillColor: red;
    @skew: 30deg;
    @top: 70px;
    
    .icon {
    	&::before, &::after {
    		content: "";
    		position: absolute;
    		top: @top;
    		left: 0;
    		 0;
    		height: 0;
    	}
    	&::before {
    		border-left: @width solid transparent;
    		border-bottom: @height solid @fillColor;
    		transform: skewY(-@skew);
    	}
    	&::after {
    		left: @width;
    		border-right: @width solid transparent;
    		border-bottom: @height solid @fillColor;
    		transform: skewY(@skew);
    	}
    }
    

    See the Pen vmzzgE by 杨友存 (@Gavin-YYC) on CodePen.

    最后确定使用熟悉的CSS3方式代替svg的方式。

  • 相关阅读:
    Transaction 'IREG', Abend 'APCT', at '????'.
    CICS中设置是否具有可修改性
    常用命令总结
    常用语句总结
    _func_
    数组排序返回索引-python和c++的实现
    数组的并行求和-cuda实现
    Pytorch 多GPU训练-多计算节点并行-All you need
    Pytorch 多GPU训练-单运算节点-All you need
    Windows 编程中的问题
  • 原文地址:https://www.cnblogs.com/yangyoucun/p/6873349.html
Copyright © 2020-2023  润新知