亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們可以在 Vue.js 中使用 jquery onscroll 函數嗎?

我們可以在 Vue.js 中使用 jquery onscroll 函數嗎?

拉丁的傳說 2023-03-03 15:45:14
我想在滾動功能上使用 JQuery 將我的導航欄固定在 vue.js 的頂部,我該怎么做。這就是我正在做的我的組件,它是引導程序中的導航欄,我想將其粘貼在滾動條上。也讓我知道任何更好的方法或解決方案請給我'''<template><div>  <b-navbar class="navbars" toggleable="lg" type="dark" variant="info" v-on:scroll="scrollFunction">      <router-link to="/"><b-navbar-brand href="/">Home</b-navbar-brand></router-link>    <b-navbar-toggle target="nav-collapse"></b-navbar-toggle>    <b-collapse id="nav-collapse" is-nav>      <b-navbar-nav>       <router-link to="/contact"><b-nav-item href="/contact">contact</b-nav-item></router-link>        <b-nav-item href="#" disabled>Disabled</b-nav-item>      </b-navbar-nav>      <!-- Right aligned nav items -->      <b-navbar-nav class="ml-auto">        <b-nav-form>          <b-form-input size="sm" class="mr-sm-2" placeholder="Search"></b-form-input>          <b-button size="sm" class="my-2 my-sm-0" type="submit">Search</b-button>        </b-nav-form>        <b-nav-item-dropdown text="Lang" right>          <b-dropdown-item href="#">EN</b-dropdown-item>          <b-dropdown-item href="#">ES</b-dropdown-item>          <b-dropdown-item href="#">RU</b-dropdown-item>          <b-dropdown-item href="#">FA</b-dropdown-item>        </b-nav-item-dropdown>        <b-nav-item-dropdown right>          <!-- Using 'button-content' slot -->          <template v-slot:button-content>            <em>User</em>          </template>          <b-dropdown-item href="#">Profile</b-dropdown-item>          <b-dropdown-item href="#">Sign Out</b-dropdown-item>        </b-nav-item-dropdown>      </b-navbar-nav>    </b-collapse>  </b-navbar></div></template>'''我的這個組件的腳本對我不起作用任何人都可以幫助我 '<script>import $ from 'jquery'export default {  name: 'AppNav',    created () {    window.addEventListener('scroll', this.scrollFunction);  },  destroyed () {    window.removeEventListener('scroll', this.scrollFunction);  },
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

我認為你可以在沒有 jQuery 的情況下達到預期的效果。:class=...基本上,您需要基于滾動事件(參見參考資料)的元素類(參見 參考資料)的條件@scroll=...。這個例子有幫助嗎?


var app = new Vue({

  el: '.scroll-demo',

  data: {

    scrollStatus:false,

    scrollTriggerY:50

  },

  created:function(){

    window.addEventListener("scroll", this.scrollManager);

  },

  methods:{

    scrollManager:function(){

      var scrollY = this.$refs["scrollParent"].scrollTop;

      this.scrollStatus = scrollY > this.scrollTriggerY;

    }

  }

});

div {

  border:1px solid #333;

}

.scroll-demo {

  position:relative;

  height:200px;

  overflow:auto;

}

.main-content {

  height:1000px;

}

.nav-bar {

  height:30px;

  background-color:grey;

}

.header-appear {

  background-color:red;

  position:sticky;

  top:0px;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<!-- just some demo app -->

<div class="scroll-demo" @scroll="scrollManager" ref="scrollParent">

  <div class="nav-bar" :class="{'header-appear': scrollStatus}">...navbar...</div>

  <div class="main-content">

    <p>Lorem ipsum...</p>

    <p>Lorem ipsum...</p>

    <p>Lorem ipsum...</p>

  </div>

</div>


查看完整回答
反對 回復 2023-03-03
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

根據您的文檔結構和您希望實現的確切行為,可能只能通過position: sticky CSS 屬性來實現。它并不總是可行并且有一些限制,但值得一試。



查看完整回答
反對 回復 2023-03-03
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號