当前位置: 首页 > news >正文

uniapp 仿企微左边公司切换页

示例代码:

<template><view class="container"><!-- 遮罩层 --><view class="mask" v-if="showSidebar" @click="closeSidebar"></view><!-- 侧边栏 --><view class="sidebar" :class="{ active: showSidebar }"><!-- 用户信息区域 --><view class="user-info"><image class="avatar" src="/static/default-avatar.png"></image><view class="user-details"><text class="username">用户名</text><text class="company">公司名称</text></view></view><!-- 菜单列表 --><view class="sidebar-content"><view class="sidebar-item"><text class="iconfont icon-message"></text><text class="item-text">消息</text></view><view class="sidebar-item"><text class="iconfont icon-contacts"></text><text class="item-text">通讯录</text></view><view class="sidebar-item"><text class="iconfont icon-workbench"></text><text class="item-text">工作台</text></view><view class="sidebar-item"><text class="iconfont icon-profile"></text><text class="item-text">我的</text></view></view></view><!-- 主内容区域包装器 --><view class="main-content" :class="{ 'content-shifted': showSidebar }"><!-- 主页面内容 --><button @click="openSidebar" class="menu-button"><u-icon name="list" size="28"></u-icon></button><!-- 这里可以放置其他主页面内容 --></view></view>
</template><script>
export default {data() {return {showSidebar: false}},methods: {openSidebar() {this.showSidebar = true},closeSidebar() {this.showSidebar = false}}
}
</script><style>
.container {position: relative;width: 100%;height: 100vh;
}.mask {position: fixed;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0, 0, 0, 0.3);z-index: 998;
}/* 主内容区域样式 */
.main-content {position: relative;min-height: 100vh;background-color: #fff;transition: transform 0.3s ease-in-out; /* 确保与sidebar使用相同的过渡时间 */z-index: 997;
}.content-shifted {transform: translateX(70%);
}/* 修改sidebar的样式 */
.sidebar {position: fixed;top: 0;left: 0;width: 70%;height: 100vh;background-color: #2f2f2f;z-index: 999;transition: transform 0.3s ease-in-out; /* 确保与main-content使用相同的过渡时间 */color: #fff;transform: translateX(-100%);
}.sidebar.active {transform: translateX(0);
}.user-info {padding: 20px;background-color: #393939;display: flex;align-items: center;
}.avatar {width: 60px;height: 60px;border-radius: 6px;margin-right: 15px;
}.user-details {flex: 1;
}.username {font-size: 18px;font-weight: 500;margin-bottom: 5px;display: block;
}.company {font-size: 14px;color: #999;display: block;
}.sidebar-content {padding: 10px 0;
}.sidebar-item {padding: 16px 20px;display: flex;align-items: center;
}.sidebar-item:active {background-color: #393939;
}.iconfont {font-size: 24px;margin-right: 12px;
}.item-text {font-size: 16px;
}.menu-button {position: absolute;top: 15px;left: 15px;background: none;border: none;padding: 10px;z-index: 997;
}.menu-button::after {border: none;
}/* 注意:需要引入iconfont字体文件 */
@font-face {font-family: 'iconfont';src: url('/static/iconfont.ttf') format('truetype');
}.iconfont {font-family: 'iconfont';
}
</style>

效果展示:

http://www.xdnf.cn/news/141013.html

相关文章:

  • FreeRTOS
  • 斗鱼娱乐电玩平台源码搭建实录
  • 短视频矩阵系统可视化剪辑功能开发,支持OEM
  • QT 连接数据库操作(15)
  • Pandas 数据导出:如何将 DataFrame 追加到 Excel 的不同工作表
  • 银发科技:AI健康小屋如何破解老龄化困局
  • MYSQL之数据类型
  • 【MySQL】3分钟解决MySQL深度分页问题
  • git 命令集
  • 【Web应用服务器_Tomcat】一、Tomcat基础与核心功能详解
  • 如何配置Spark
  • Spring-Framework源码环境搭建
  • 7.10 GitHub Sentinel CLI开发实战:Python构建企业级监控工具的5大核心技巧
  • JMeter添加HTTP请求默认值元件的作用详解
  • 百度打响第一枪!通用超级智能体时代,真的来了
  • 常用第三方库:flutter_boost混合开发
  • Android Kotlin 依赖注入全解:Koin appModule 配置与多 ViewModel 数据共享实战指南
  • 解决视频处理中的 HEVC 解码错误:Could not find ref with POC xxx【已解决】
  • 创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式
  • 【QQMusic项目复习笔记——音乐管理模块详解】第四章
  • 1.10软考系统架构设计师:优秀架构设计师 - 练习题附答案及超详细解析
  • 时序数据库IoTDB在航空航天领域的解决方案
  • BiliNote:开源的AI视频笔记生成工具,让知识提取与分享更高效——跨平台自动生成结构化笔记,实现从视频到Markdown的智能转化
  • PT report_timing详解
  • 关于使用git init --bare 裸仓库的使用
  • 3.3 Spring Boot文件上传
  • 基于DrissionPage的表情包爬虫实现与解析(含源码)
  • python中的logging库详细解析
  • VsCode如何使用默认程序打开word Excel pdf等文件
  • 光谱相机如何提升目标检测与识别精度