Vue-分享一款很好用的Vue插件-Vuesax(实现侧边导航栏自适应悬浮,并通过Flex布局实现左侧右侧自适应大小)
warning:
这篇文章距离上次修改已过186天,其中的内容可能已经有所变动。
<template>
<div id="app">
<vs-sidebar click-not-close parent="body" default-index="1" color="primary" class="sidebarx">
<div class="header-sidebar" slot="header">
<!-- 这里可以放置品牌logo等内容 -->
</div>
<vs-sidebar-item index="1" icon="question_answer">
Dashboard
</vs-sidebar-item>
<vs-sidebar-item index="2" icon="gavel">
History
</vs-sidebar-item>
<!-- 更多的sidebar项 -->
</vs-sidebar>
<div class="content-wrapper">
<!-- 主要内容区 -->
</div>
</div>
</template>
<script>
import VsSidebar from 'vuesax/dist/components/vs-sidebar/VsSidebar.vue'
import VsSidebarItem from 'vuesax/dist/components/vs-sidebar-item/VsSidebarItem.vue'
export default {
components: {
VsSidebar,
VsSidebarItem
}
}
</script>
<style>
.sidebarx {
height: 100vh; /* 设置侧边导航的高度为视口高度 */
width: 250px; /* 设置侧边导航的宽度 */
position: fixed; /* 将侧边导航条固定定位 */
top: 0; /* 顶部对齐 */
left: 0; /* 左侧对齐 */
overflow-y: auto; /* 使得导航内容超出时可以滚动 */
}
.content-wrapper {
margin-left: 250px; /* 设置内容区的左外边距,以保证内容不会覆盖导航栏 */
padding-top: 60px; /* 设置顶部内边距,以避免内容被侧边导航栏遮挡 */
}
@media (max-width: 768px) {
.sidebarx {
transform: translateX(-250px); /* 当屏幕宽度小于768px时,侧边导航条默认隐藏,通过transform实现滑动效果 */
transition: transform 0.3s ease-in-out; /* 设置过渡动画 */
}
.content-wrapper {
margin-left: 0; /* 屏幕宽度小于768px时,取消内容区的左外边距,以实现侧边导航栏的悬浮效果 */
}
#app.sidebar-hidden .sidebarx {
transform: translateX(0); /* 当sidebar-hidden类被添加到#app时,侧边导航条通过transform显示出来 */
}
}
</style>
这个示例代码展示了如何使用Vuesax库中的vs-sidebar
和vs-sidebar-item
组件来创建一个自适应的侧边导航栏。侧边导航栏会在屏幕宽度大于768px时固定在左侧,并占据100%的高度和一定的宽度。当屏幕宽度小于768px时,侧边导航栏会隐藏,只有在#app元素上添加了sidebar-hidden类时,侧边导航栏才会通过transform属性显示出来。这个示例还展示了如何使用媒体查询来实现响应式布局,并通过Flex布局来保证内容区不会被侧边导航栏遮挡。
评论已关闭