Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erklärung der Top-Floating-Fixed-Funktion beim Gleiten mit vue+jquery+lodash

Ausführliche Erklärung der Top-Floating-Fixed-Funktion beim Gleiten mit vue+jquery+lodash

php中世界最好的语言
php中世界最好的语言Original
2018-05-15 09:46:122325Durchsuche

Dieses Mal werde ich Ihnen eine detaillierte Erklärung der oberen schwebenden Fixierungsfunktion geben, wenn vue+jquery+lodash gleitet. Was sind die Vorsichtsmaßnahmen für die Implementierung der oberen schwebenden Fixierungsfunktion, wenn vue+jquery+lodash gleitet? . Hier ist der eigentliche Kampf. Schauen wir uns den Fall an.

Dieser Effekt ist ein Demoeffekt, der aus einem Projekt extrahiert wurde.

Vorbereitung:

1. jQ vorstellen

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>

lodash.js vorstellen

npm install lodash -D

fixTop.vue-Komponente

<template>
 <p class="fixtop2">
  <header class="header" ref="header"></header>
  <p class="nav" ref="nav" :class="{isFixed:isFixed}">
   <p class="box" v-for="(item,index) in list" :key="index">
    {{item.title}}
   </p>
  </p>
  <ul class="content">
   <li v-for="(item,index) in new Array(20)" :key="index">{{index+1}}</li>
  </ul>
 </p>
</template>
<script>
var throttle = require(&#39;lodash/throttle&#39;); //从lodash中引入的throttle节流函数
export default {
 name: &#39;navScroll2&#39;,
 data() {
  return {
   list: [
    { title: &#39;AAAA&#39;, id: 1 },
    { title: &#39;BBBB&#39;, id: 2 },
    { title: &#39;CCCC&#39;, id: 3 },
    { title: &#39;DDDD&#39;, id: 4 },
   ],
   isFixed: false, //是否固定的
   throttleScroll: null, //定义一个截流函数的变量
  };
 },
 methods: {
  //滚动的函数
  handleScroll() {
   let h = $(this.$refs.header).outerHeight(); //header的高度
   let wh = $(window).scrollTop(); //滚动的距离的,为什么这里使用的jq,因为不用考虑的什么的兼容问题
   let navH = $(this.$refs.nav).outerHeight(); //nav的高度
   if (wh > h) {
    this.isFixed = true;
   } else {
    this.isFixed = false;
   }
  },
 },
 mounted() {
  //写在掉接口的里面的
  this.$nextTick(() => {
   //这里使用监听的scroll的事件,为什么要使用的节流函数,如果不使用的,页面一直在滚动计算的,这样在
   //使用手机时候,出现非常卡的,隔一段时间计算,大大降低了性能的消耗(具体的好处自己去查资料)
   window.addEventListener(&#39;scroll&#39;, this.throttleScroll, false);
  });
  this.throttleScroll = throttle(this.handleScroll, 100);
 },
 deactivated() {
  //离开页面需要remove这个监听器,不然还是卡到爆。
  window.removeEventListener(&#39;scroll&#39;, this.throttleScroll);
 },
};
</script>
<style lang="scss" scoped>
.fixtop2 {
 min-height: 100vh;
}
.header {
 height: 5rem;
 width: 100%;
 background-color: red;
}
.nav {
 display: flex;
 width: 100%;
 background-color: pink;
 &.isFixed {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
 }
 .box {
  font-size: 0.3rem;
  padding: 0 0.3rem;
  height: 0.9rem;
  line-height: 0.9rem;
  color: #333333;
  flex: 1;
 }
}
.content {
 height: 20rem;
 li {
  width: 100%;
  height: 1rem;
  border-bottom: 1px solid #000;
 }
}
</style>

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

Eine Zusammenfassung der Angular5-Routing-Wertübertragungsmethoden

JS implementiert die Transparenzgradientenfunktion

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Top-Floating-Fixed-Funktion beim Gleiten mit vue+jquery+lodash. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn