Vue实现网页版响应式顶部导航栏-------插槽-子组件-父组件

一、先上结果图:
在这里插入图片描述
当屏幕缩小时的界面:
在这里插入图片描述
在这里插入图片描述

二、首先我们先创建一些用到的组件,如图
在这里插入图片描述

二、顶部组件的相关操作(了解插槽)

1、NavBar.vue上代码:
里面ul>标签放置一个插槽,用来放置多个li>标签。为什么要放插槽呢??因为在一些地方我们可能还会用到像这样模板,只是那时的li>标签内容不一样了。所以插槽就很好解决了,下次使用只需要改li>标签的内容即可

<template>
  <nav>
    <div class="logo">
      <slot name="logo-icon"><img src="../../assets/logo.jpg"></slot>
      <slot name="logo-title">巧克力电影</slot>
    </div>
    <div class="search">
      <el-input
        placeholder="请输入内容"
        size="medium"
        class="input_search">
        <i slot="prefix" class="el-input__icon el-icon-search"></i>
      </el-input>
    </div>
    <ul class="nav-menu">
      <slot></slot>
    </ul>
    <div class="burger" @click="handleBurger()">
      <div class="top-line"></div>
      <div class="middle-line"></div>
      <div class="bottom-line"></div>
    </div>
  </nav>
</template>

<script>
    export default {
   
        name: "NavBar",
        methods:{
   
            handleBurger(){
   
                const burger=document.querySelector(".burger");
                const navMenu=document.querySelector(".nav-menu");
                burger.addEventListener("click",function(){
   
                    burger.classList.toggle("active");
                    navMenu.classList.toggle("open");
                })
            }
        }
    }
</script>



2、NavBar.vue样式
响应式页面布局
@media screen and (max-width: 768px){
}

当网页屏幕小于max-width,样式发生的变化

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值