粘性导航栏显示在所有视图中

时间:2019-04-02 12:13:20

标签: html css vue.js vue-component vuikit

如何使用uikit使响应式粘性导航栏在桌面上工作
  这是我尝试过的

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div uk-sticky="sel-target: .uk-navbar-container; cls-active: uk-navbar-sticky; bottom: #transparent-sticky-navbar" style="background-color: rgba(0,0,0,.4)">
  <nav class="uk-navbar-container uk-navbar-transparent uk-height-match" uk-navbar style="position: relative; z-index: 980;height: 77px;">
    <div class="uk-navbar-center">
      <ul class="uk-navbar-nav">
        <li class="uk-active"><a href="#">Active</a></li>
        <li>
          <a href="#">Parent</a>
          <div class="uk-navbar-dropdown">
            <ul class="uk-nav uk-navbar-dropdown-nav">
              <li class="uk-active"><a href="#">Active</a></li>
              <li><a href="#">Item</a></li>
              <li><a href="#">Item</a></li>
            </ul>
          </div>
        </li>
        <li><a href="#">Item</a></li>
      </ul>
    </div>
  </nav>
</div>

导航栏可用于所有显示视图,但我不希望它可用于平板电脑和移动视图
我该如何实现?

1 个答案:

答案 0 :(得分:0)

您可以设置窗口大小的侦听器,并且当窗口宽度为移动大小时,隐藏导航栏,我在您的父组件中就这样做了一次:

data: function() {
  return {
    windowWidth: 0,
  }
},
mounted() {
  this.$nextTick(function() {
    window.addEventListener('resize', this.getWindowWidth);
    //Init
    this.getWindowWidth()
  })
},
methods: {
  getWindowWidth(event) {
    this.windowWidth = document.documentElement.clientWidth;
  },
},
beforeDestroy() {
  window.removeEventListener('resize', this.getWindowWidth);
}

在您的模板中(例如,伪代码):

<template>
  <navbar v-if="windowWidth > 800px"></navbar>
</template>

希望有帮助