制作侧边栏显示和隐藏效果

简介: 公司最近在做一个视频直播的功能,里面有个页面样式是需要点击收起侧边栏的,整体效果如图: 那么如何制作呢,参考了网上的代码,我发现很简单,下面就是我制作的代码: 返回 ...

公司最近在做一个视频直播的功能,里面有个页面样式是需要点击收起侧边栏的,整体效果如图:

那么如何制作呢,参考了网上的代码,我发现很简单,下面就是我制作的代码:

<section id="left" class="left cbp-spmenu cbp-spmenu-vertical cbp-spmenu-left cbp-spmenu-open">
            <a href="#" class="reback"> <span class="img"></span> <span class="title">返回</span>
            </a>
            <header class="hotcourse">
                <span class="hotimg"> </span> <span class="title">热门直播频道</span>
            </header>
            <section class="middle-section">
                <ul class="courses">
                    <li class="item">
                        <div class="item-img">
                            <img src="/resources/img/liveSupport/hotlive/rmfm_1.png"> <span class="img-top"></span>
                        </div>
                        <div class="item-title">
                            <span class="title-img"></span> <span class="title">快乐星猫入园培训会</span>
                        </div>
                        <div class="item-info">
                            <span class="user-icon"></span> <span class="user-name">余金枝</span> <span class="time-icon"></span> <span class="time-txt">2016-8-30 09:20</span>
                        </div>
                    </li>
                    <li class="item">
                        <div class="item-img">
                            <img src="/resources/img/liveSupport/hotlive/rmfm_2.png"> <span class="img-top"></span>
                        </div>
                        <div class="item-title">
                            <span class="title-img"></span> <span class="title">快乐星猫入园培训会</span>
                        </div>
                        <div class="item-info">
                            <span class="user-icon"></span> <span class="user-name">余金枝</span> <span class="time-icon"></span> <span class="time-txt">2016-8-30 09:20</span>
                        </div>
                    </li>
                    <li class="item">
                        <div class="item-img">
                            <img src="/resources/img/liveSupport/hotlive/rmfm_3.png"> <span class="img-top"></span>
                        </div>
                        <div class="item-title">
                            <span class="title-img"></span> <span class="title">快乐星猫入园培训会</span>
                        </div>
                        <div class="item-info">
                            <span class="user-icon"></span> <span class="user-name">余金枝</span> <span class="time-icon"></span> <span class="time-txt">2016-8-30 09:20</span>
                        </div>
                    </li>
                    <li class="item">
                        <div class="item-img">
                            <img src="/resources/img/liveSupport/hotlive/rmfm_4.png"> <span class="img-top"></span>
                        </div>
                        <div class="item-title">
                            <span class="title-img"></span> <span class="title">快乐星猫入园培训会</span>
                        </div>
                        <div class="item-info">
                            <span class="user-icon"></span> <span class="user-name">余金枝</span> <span class="time-icon"></span> <span class="time-txt">2016-8-30 09:20</span>
                        </div>
                    </li>
                    <li class="item">
                        <div class="item-img">
                            <img src="/resources/img/liveSupport/hotlive/rmfm_4.png"> <span class="img-top"></span>
                        </div>
                        <div class="item-title">
                            <span class="title-img"></span> <span class="title">快乐星猫入园培训会</span>
                        </div>
                        <div class="item-info">
                            <span class="user-icon"></span> <span class="user-name">余金枝</span> <span class="time-icon"></span> <span class="time-txt">2016-8-30 09:20</span>
                        </div>
                    </li>
                </ul>
                <div class="expancoll-left">
                    <span class="collbar"></span>
                </div>
            </section>
            <footer class="showmore">
                <a href="#" class="btn btn-default btn-red">更多直播...</a>
            </footer>
        </section>
/* General styles for all menus */
.cbp-spmenu {
    background: #EDECEC;
    position: fixed;
}
/* Orientation-dependent styles for the content of the menu */
.cbp-spmenu-vertical {
    width: 260px;
    height: 100%;
    top: 0;
    z-index: 1000;
}

.cbp-spmenu-horizontal {
    width: 100%;
    height: 150px;
    left: 0;
    z-index: 1000;
    overflow: hidden;
}

/* Vertical menu that slides from the left or right */
.cbp-spmenu-left {
    left: -260px;
}

.cbp-spmenu-right {
    right: -260px;
}

.cbp-spmenu-left.cbp-spmenu-open {
    left: 0px;
}

.cbp-spmenu-right.cbp-spmenu-open {
    right: 0px;
}

/* Push classes applied to the body */

.cbp-spmenu-push {
    overflow-x: hidden;
    position: relative;
    left: 0;
}

.cbp-spmenu-push-toright {
    left: 260px;
}

.cbp-spmenu-push-toleft {
    left: -260px;
}

.cbp-spmenu,
.cbp-spmenu-push {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
$('.expancoll-left').click(function(e) {
        var this$ = $(this);
        //classie.toggle(this, 'active');
        //classie.toggle(document.getElementById('left'), 'cbp-spmenu-open');
        $('.left').toggleClass('cbp-spmenu-open')
        if ($('.left').hasClass('cbp-spmenu-open')) {
            this$.find('.expanbar').removeClass('expanbar').addClass('collbar')
        } else {
            this$.find('.collbar').removeClass('collbar').addClass('expanbar')
        }
    });

总结:

1、是通过css动画效果来制作的,再通过js切换css里面的class来动态监听点击时的效果

2、重点是class中的cbp-spmenu-open,和css中的transition: all 0.3s ease;

参考地址:http://www.htmleaf.com/Demo/20141114477.html

目录
相关文章
|
数据可视化 数据挖掘 数据管理
问卷调查数据分析指南!掌握方法,精准把握用户需求!
本文介绍了如何利用自定义报表、交叉报表和过滤器进行问卷调查数据分析。文章首先区分了定量和定性数据,强调了定量数据在分析中的重要性,并列举了客户体验(CSAT、CES、NPS)和市场调研的关键指标。接着,提到了定性数据分析方法,如情感分析和词云图。文章还讨论了自定义报表、交叉报表和过滤器在数据筛选和相关性探索中的作用,以及收集器在多源数据收集上的应用。最后,强调了仪表板在数据可视化和比较中的优势,并推荐了Zoho Survey作为综合的数据管理平台。
1046 0
问卷调查数据分析指南!掌握方法,精准把握用户需求!
|
安全 Linux Shell
Linux用户管理指南:创建、删除、权限、最佳实践,全面掌握用户管理技巧
Linux用户管理指南:创建、删除、权限、最佳实践,全面掌握用户管理技巧
2736 0
|
Java Maven
MapStruct - Couldn‘t retrieve @Mapper annotation
MapStruct - Couldn‘t retrieve @Mapper annotation
3250 0
|
10月前
|
人工智能 自然语言处理 搜索推荐
金融智能客服的“模力时刻”:大模型驱动下的技术跃迁
如何手搓一个“有活人感”的金融智能客服?
835 2
|
存储 人工智能 搜索推荐
终身学习型智能体
当前人工智能前沿研究的一个重要方向:构建能够自主学习、调用工具、积累经验的小型智能体(Agent)。 我们可以称这种系统为“终身学习型智能体”或“自适应认知代理”。它的设计理念就是: 不靠庞大的内置知识取胜,而是依靠高效的推理能力 + 动态获取知识的能力 + 经验积累机制。
1737 135
|
数据采集 运维 测试技术
软件测试之道 -- 做一个有匠心的程序员
作者一年前围绕设计模式与代码重构写了一篇《代码整洁之道 -- 告别码农,做一个有思想的程序员!》的文章。本文作为续篇,从测试角度谈程序员对软件质量的追求。
1055 17
|
人工智能 自然语言处理 UED
NOTE-大模型Clouder认证:利用大模型提升内容生产能力
NITE about《大模型Clouder认证:利用大模型提升内容生产能力》
798 21
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
存储 JSON 自然语言处理
数据标注工具 doccano | 命名实体识别(Named Entity Recognition,简称NER)
数据标注工具 doccano | 命名实体识别(Named Entity Recognition,简称NER)
671 1
|
设计模式 测试技术 数据库连接
Entity Framework Core 中的依赖注入超厉害!DI 与 DbContext 完美结合,提升开发效率
【8月更文挑战第31天】依赖注入(DI)是一种软件设计模式,用于将对象的依赖关系与其创建过程解耦,从而提升代码的可测试性、可维护性和可扩展性。在Entity Framework Core中使用DI能够提高可测试性,便于替换DbContext实现以进行单元测试;增强可维护性,使代码模块化并清晰展示组件间的依赖关系;提升可扩展性,方便添加新服务和功能而不需修改现有代码。通过Microsoft.Extensions.DependencyInjection等依赖注入容器,可将DbContext注册并注入到需要使用的类中,简化数据库管理和测试流程。
620 0