美文网首页
less封装一个播放精灵图的mixin

less封装一个播放精灵图的mixin

作者: Issho | 来源:发表于2020-08-15 10:43 被阅读0次

☼ 注:笔者的文章是根据自己当前项目做的笔记,具体应用请参照自己实际项目情况

//mixin.less
.frameAnimation(
    @width, // 容器宽度,一般取精灵图每一帧的宽
    @height, // 容器高度
    @bgi, // 精灵图url
    @bgsw, // 精灵图宽度
    @bgsh, // 精灵图高度
    @duration, // 动画完成一个周期的时间
    @keyframesName, // 动画名称
    @step: steps(1), // 设置间隔参数,可以实现分步过渡
    @iterationCount: 1, // 动画播放次数
    @fillMode: forwards // 动画时间之外的状态
) {
    width: @width;
    height: @height;
    background-image: @bgi;
    background-size: @bgsw @bgsh;
    animation: @keyframesName @duration @step @iterationCount @fillMode;
    @keyframes @keyframesName {
        0% {
            width: @width;
            height: @height;
            background-image: @bgi;
            background-size: @bgsw @bgsh;
        }
        .createFrameAnimationSteps(@bgsw / @width, @width);
    }
}
// 循环生成animation代码
// @frameCount是动画的帧数,即,精灵图的宽度 / 每一帧的宽度
.createFrameAnimationSteps(@frameCount, @bpx, @bpy: 0px, @i: 1) when(@i < @frameCount) {
    @step: (100 / @frameCount) * @i * 1%;
    @{step} {
        background-position: -@bpx * @i @bpy;
    }
    .createFrameAnimationSteps(@frameCount, @bpx, @bpy, @i + 1)
}

在需要使用的地方引入调用即可

@import '~@/assets/mixin.less';
.frame_animation {
    position: absolute;
    bottom: 35%;
    left: 0;
    z-index: 9999;
    .sprite {
        .frameAnimation(400px, 450px, url('~@/static/img/example/c-tiaoru.png'), 6800px, 450px, 2.4s, run);
        &.rollback {
            .frameAnimation(400px, 450px, url('~@/static/img/example/c-tiaochu.png'), 4800px, 450px, 2.4s, back);
        }
    }
}

相关文章

  • less封装一个播放精灵图的mixin

    ☼ 注:笔者的文章是根据自己当前项目做的笔记,具体应用请参照自己实际项目情况 在需要使用的地方引入调用即可

  • 04.less中的混合,带参数混合

    less中的混合 什么是less中的混合(Mixin)?将需要重复使用的代码封装到一个类中,在需要使用的地方调用封...

  • Less语言特性 - 命名空间和访问器

    它用于将mixins分组在通用名称下。 使用命名空间可以避免名称冲突,并从外部封装mixin组。less是css的...

  • Cocos2d_x 精灵动画CCAnimation

    CCAnimation 其实这个类就是封装了一个Frame序列,作为精灵播放动画的参数,没有别的功能。 Anima...

  • 分享一个自己正在用的gulp配置项目

    分享一个自己正在用的gulp配置项目,集成了css精灵图,less,css兼容前缀,js检查,html,js,cs...

  • LESS

    LESS: Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量 Mixin、函数等特...

  • CSS 预处理语言之 less 篇

    less 前言 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、...

  • Less语言特性 - 混合参数

    参数mixin使用一个或多个参数,通过参数和其属性来扩展LESS的功能,以便在混合到另一个块时自定义mixin输出...

  • Less学习笔记

    less是什么 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、...

  • less & sass

    什么是less Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、...

网友评论

      本文标题:less封装一个播放精灵图的mixin

      本文链接:https://www.haomeiwen.com/subject/fgoodktx.html