zoukankan      html  css  js  c++  java
  • 001_创建一个sidebar切换页面

    Table Of Content
    准备
    基本思路
    实现

    我们期望实现这样的效果:

    ![](https://img2018.cnblogs.com/blog/1735896/202001/1735896-20200113093836957-1748170485.gif)

    准备

    这是一个基础的准备,仅仅含有html/css文件。 下载link

    这是我们学习制作一个sidebar页面之前的准备,我们接下来只关注js部分的实现。

    在以上准备文件中,如果你下载完毕,双击index.html ,然后按F12,将看到以下页面:

    在这里,你会看到,预留了一个diaplay属性:

    如果你去掉display前面的小勾,即取消应用该属性,你将会看到以下页面:

    该页面,就是我们接下来希望通过js来控制切换的sidebar页面。 你可以通过阅读提供的准备代码,了解该页面的编写。

    基本思路

    我们的核心想法是,是通过JS控制CSS属性,来实现sidebar的展开与收缩,更确切的想法,我们给sidebar加上一个名为hide的class,页面初始加载,hide有display:none生效,即默认sidebar是折叠的。 然后,如果点击展开按钮,那么触发js逻辑,移除该hide属性。点击sidebar,加会hide属性。 然后加上transition动态效果。 就能实现我们预期的效果。 还是看代码实现。

    实现

    JS

    创建一个名为index.js的文件,并我们的index.html文件中引入,需要注意的是,我们的js逻辑操作的是dom,所以在引入的时,要再dom加载完成之后再引入,即在文档最后引入。在我们实现的js逻辑如下:

    let app = {}
    
    document.querySelector('.sidebar').addEventListener('click',function(){
        console.log("close")
        app.closeSidebar()
    })
    
    document.querySelector('.header-left-btn').addEventListener('click',function(){
        console.log("open")
        app.openSidebar()
    })
    
    app.closeSidebar = function(){
        document.querySelector('.sidebar').classList.add('hide')
    }
    
    app.openSidebar = function(){
        document.querySelector('.sidebar').classList.remove('hide')
    }
    

    说明

    我们实现的最简单的功能,是点击header的左边按钮,sidebar展开,点击展开的sidebar任何位置,sidebar收起。

    CSS

    .hide{
        display: none;
    }
    
    .sidebar.hide {
        display: block;
        left: -70%;
    }
    .sidebar{
        transition:left 0.5s;
    }
    

    完整代码实现:Link

  • 相关阅读:
    顶点着色器详解 (Vertex Shaders)
    Texture Filter中的Bilinear、Trilinear以及Anistropic Filtering
    mysql远程访问1045的问题解决
    在eclipse上集成安装阿里巴巴代码规约P3C插件
    Mybatis Generator主要配置详解
    redis cluster最简配置
    springboot +redis配置
    redis cluster的conf配置文件配置
    MySQL与Oracle的主要区别
    java EE中使用PO和VO的注意事项
  • 原文地址:https://www.cnblogs.com/jaycethanks/p/12180373.html
Copyright © 2011-2022 走看看