vue实现首页导航面板组件

效果图

src/pages/home/nav.vue

<template>
    <div class="nav">
        <ul class="nav-list">
            <li class="nav-item" v-for="(nav,index) in navItems" :key="index">
                <a :href="nav.linkUrl" class="nav-link">
                    <img :src="nav.picUrl"  class="nav-pic">
                    <p class="nav-title">{{nav.text}}</p>
                </a>
            </li>
        </ul>
    </div>
</template>

<script>
export default {
    name:‘HomeNav‘,
    data(){
        return{
            navItems:[
                {
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-1.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-2.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-3.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-4.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-5.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-6.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-7.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-8.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-9.png‘),
                    text:‘团购‘
                },{
                    linkUrl:‘www.baidu.com‘,
                    picUrl:require(‘assets/img/nav/nav-item-10.png‘),
                    text:‘团购‘
                }
            ],
        }
    }
}
</script>

<style scoped>
    .nav{
        width:100%;
        padding-top:15px;
        background:#fff;
    }
    .nav-list{
        display:flex;
        flex-wrap:wrap;
    }
    .nav-item{
        width:20%;
    }
    .nav-link{
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        margin-bottom:15px;
    }
    .nav-pic{
        width:60%;
        margin-bottom:7px;
    }
</style>

src/pages/home/index.vue

<template>
    <div class="home">
        <scrollbar>
            <slider />
            <home-nav />
        </scrollbar>
        <!-- 该页面自己的子路由 -->
        <router-view></router-view>
    </div>

</template>

<script>
import Slider from ‘components/slider‘;
import Scrollbar from ‘components/scroll‘;
import HomeNav from ‘./nav‘;

export default {
    name:"Home",
    components:{
        Slider,
        Scrollbar,
        HomeNav
    }
}
</script>

<style scoped>
    .home{
        width:100%;
        height:100%;
    }
</style>

src/assets/scss/index.scss

@import ‘icons‘;

*{
    margin:0;
    padding:0;
}
html,body{
    // 必须设置,否则内容滚动效果无法实现
    width:100%;
    height:100%;
}
ul,li{
    list-style:none;
}
a{
    text-decoration: none;
    color:#333;
}

原文地址:https://www.cnblogs.com/chenyingying0/p/12641670.html

时间: 2024-10-12 14:34:31

vue实现首页导航面板组件的相关文章

vue+elementui的导航滑块组件

工作需要做一个带滑块效果的导航栏,初步想法是用element的导航组件去做,后面摸坑结合各位大佬的博客初步实现效果,话不多说,直接上代码,记录一下爬坑之旅 1 <template> 2 <div class="y-nav"> 3 <el-row class="nav"> 4 <el-menu 5 :default-active="$route.path" 6 class="el-menu-dem

SPA项目首页导航+左侧菜单

Mock.js是个啥 前后端分离之后,前端迫切需要一种机制,不再需要依赖后端接口开发,而今天的主角mockjs就可以做到这一点 Mock.js是一个模拟数据的生成器,用来帮助前端调试开发.进行前后端的原型分离以及用来提高自动化测试效率. Mockjs官方(http://mockjs.com/) Mock.js使用步骤 安装mockjs依赖 npm install mockjs -D 下载成功之后package.json中会出现: "mockjs": "^1.0.1-beta3

Vue Admin - 基于 Vue &amp; Bulma 后台管理面板

Vue Admin 是一个基于 Vue 2.0 & Bulma 0.3 的后台管理面板(管理系统),相当于是 Vue 版本的 Bootstrap 管理系统,提供了一组通用的后台界面 UI 和组件,其中还有丰富的图表组件,开箱即用.赶紧来体验一下吧. 在线演示      免费下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很实用的10个效果[

vue学习笔记の实现select组件

通过腾讯训练营这几天的学习,初步实现了自定义的选择下拉框组件,其中,可以把下拉选项抽离出来作为子组件,整个组件为父组件,其主要由<div>.<input>.<custom-select>.<ul>.<li>等标签构成基本的选择组件页面结构.主要的功能项:输入框及button按钮,构成初次展现的页面,通过点击输入框按钮,下拉列表选择项出现,当点击选择项中的某一项内容时,输入框中会出现相应的内容,再点击输入框,下拉选择项列表隐藏.同时,通过父组件与子

bootstrap学习8-输入框和导航栏组件

<!DOCTYPE html><html lang="zh-cn">  <head>    <meta charset="utf-8">    <title>输入框和导航栏组件</title>    <link href="css/bootstrap.min.css" rel="stylesheet">  </head><bo

Vue动态加载异步组件

背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,iframe存在跨域的问题,当然是postMessage还是可以通信的,但也并非是最好的.目前有这么一个场景:门户需要制作通用的首页和数据概览页面,首页和数据概览页面通过小部件来自由拼接.业务组件在制作的时候只需要提供各个模块小部件的url就可以了,可是如果小部件之间还存在联系呢?那么iframe是不好

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

详解Bootstrap面板组件

面板组件主要作用是用来处理一些其他组件无法完成的功能,在不同的版本中具有不同的源码: LESS:panels.less SASS:_panels.scss 基础面板非常简单,就是一个div容器中运用了类.panel的样式,产生一个具有边框的文本显示块,由于panel不控制主题颜色,所以在.panel基础上增加一个控制颜色的主题的类.panel-default,在里面添加一个div.panel-body来放置面板主体内容 .panel主要对边框.间距.圆角.左右一定的设置: .panel { ma