美文网首页
No.1 - 制作一个简单的菜单动画效果

No.1 - 制作一个简单的菜单动画效果

作者: LeungJhowe | 来源:发表于2018-07-07 15:46 被阅读0次

    任务
    demo

    小结

    用transform搭配transition,line用div实现。一开始想通过改变元素width和translate偏移,发现两个变形不协调,不是中心开始,width和absolute的left则可行。后面改用scale缩放,可以从中心开始变化,代码量也少。button点击会有蓝色边框,是outline属性的原因,设置outline 0 或none

    其他补充

    再看其他人写的代码中,学习了一个新的东西,是HTML5中新的JS原生的class操作方法

    HTML DOM classList 属性

    详细请看HTML DOM classList 属性 | 菜鸟教程
    具体看几个方法
    增删改查

    方法 描述
    add(class1,class2) (增)在元素中添加一个或多个类名。如果指定的类名已存在,则不会添加
    contains(class) (查)返回布尔值,判断指定的类名是否存在。可能值:
    true - 元素包已经包含了该类名
    false - 元素中不存在该类名
    item(index) (查)返回类名在元素中的索引值。索引值从 0 开始。
    如果索引值在区间范围外则返回 null
    remove(class1,class2,...) (删)移除元素中一个或多个类名。注意: 移除不存在的类名,不会报错。
    toggle(class, true or false) (改)在元素中切换类名。

    第一个参数为要在元素中移除的类名。
    并返回 false

    如果该类名不存在则会在元素中添加类名,并返回 true

    第二个是可选参数,是个布尔值用于设置元素是否强制添加或移除类,不管该类名是否存在。例如:

    移除一个 class: element.classList.toggle("classToRemove", false);
    添加一个 class: element.classList.toggle("classToAdd", true);

    注意: Internet Explorer 或 Opera 12 及其更早版本不支持第二个参数。
    横线实现方法

    共同属性 transition:name duration timing-function
    ①width为100%,高度固定的div(线) + transform 的 scaleX(0) --> scaleX(1)
    ②absolute的<hr>,变化<hr>的属性width和left代码
    ③伪元素实现线条,变化由属性width 0 100%实现

    相关文章

      网友评论

          本文标题:No.1 - 制作一个简单的菜单动画效果

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