Less实现函数作为参数传递,创建css3动画@keyframes函数

最近想实现一个css3动画的函数,但是创建@keyframe时,老是碰到一个问题,就是将函数function作为参数传递。研究了半天,发现可以这样写。

.function-name(@function-param){
  @function-param();
}
.function-name({

});

不过这种写法不能用于普通的函数参数传递,目前只发现适用于keyframes动画,看下面

/**
* animation
*/
.keyframes (@prefix,@name,@content) when (@prefix=def) {
  @keyframes @name {
    @content();
  }
}
.keyframes (@prefix,@name,@content) when (@prefix=moz) {
  @-moz-keyframes @name {
    @content();
  }
}
.keyframes (@prefix,@name,@content) when (@prefix=o) {
  @-o-keyframes @name {
    @content();
  }
}
.keyframes (@prefix,@name,@content) when (@prefix=webkit) {
  @-webkit-keyframes  @name{
    @content();
  }
}
.keyframes (@prefix,@name,@content) when (@prefix=all) {
  .keyframes(moz,@name,@content);
  .keyframes(o,@name,@content);
  .keyframes(webkit,@name,@content);
  .keyframes(def,@name,@content);
}

然后我们如何创建不同各种浏览器内核的@keyframes呢?

.keyframes(all,zindex,{
  from{z-index :100;}
  to{z-index: -100}
});

解析之后,就生成了下面这样的css。

@-moz-keyframes zindex {
  from {
    z-index: 100;
  }
  to {
    z-index: -100;
  }
}
@-o-keyframes zindex {
  from {
    z-index: 100;
  }
  to {
    z-index: -100;
  }
}
@-webkit-keyframes zindex {
  from {
    z-index: 100;
  }
  to {
    z-index: -100;
  }
}
@keyframes zindex {
  from {
    z-index: 100;
  }
  to {
    z-index: -100;
  }
}

这是不是你想要的呢?嘻嘻,快拿去用吧~

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

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,821评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,350评论 0 11
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 114,965评论 24 450
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,143评论 25 709
  • 你见过凌晨4点的上海吗? 我和L相遇,在上海,凌晨4点。 14年,作为一只地产狗,随项目调动来到上海,呼啸的地铁,...
    浪叔Jerry阅读 444评论 1 7