最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實現監(jiān)聽某個元素滾動,親測有效

 更新時間:2022年07月27日 10:42:49   作者:卡爾特斯  
這篇文章主要介紹了Vue實現監(jiān)聽某個元素滾動,親測有效!具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

監(jiān)聽某個元素滾動,親測有效

Vue 開發(fā),有時候只需要監(jiān)聽某個元素是否滾動就行了,不需要去監(jiān)聽整個頁面。

Vue 有自帶的 @scroll 但是并沒有什么用,給某個滾動元素加上,滾動該元素并不會調用,加上 CSS 支持滾動樣式也一樣。

怎么監(jiān)聽呢?通過 addEventListener 與 @mousewheel 配合實現

  • addEventListener: 增加的是拖拽滾動條也能監(jiān)聽到滾動
  • @mousewheel:添加的是非拖拽滾動條滾動,比如在元素上鼠標或者觸摸板滾動。
<template>
? <!-- 滾動視圖 -->
? <div class="scrollview" ref="scrollview" @mousewheel="scrollChange">
? ? <!-- 內容區(qū)域 -->
? ? <div class="content"></div>
? </div>
</template>
<script>
export default {
? mounted () {
? ? // 獲取指定元素
? ? const scrollview = this.$refs['scrollview']
? ? // 添加滾動監(jiān)聽,該滾動監(jiān)聽了拖拽滾動條
? ? // 尾部的 true 最好加上,我這邊測試沒加 true ,拖拽滾動條無法監(jiān)聽到滾動,加上則可以監(jiān)聽到拖拽滾動條滾動回調
? ? scrollview.addEventListener('scroll', this.scrollChange, true)
? },
? // beforeDestroy 與 destroyed 里面移除都行
? beforeDestroy () {
? ? // 獲取指定元素
? ? const scrollview = this.$refs['scrollview']
? ? // 移除監(jiān)聽
? ? scrollview.removeEventListener('scroll', this.scrollChange, true)
? },
? methods: {
? ? // 滾動監(jiān)聽
? ? scrollChange () {
? ? ? console.log('滾動中')
? ? }
? }
}
</script>
<style scoped>
.scrollview {
? height: 100px;
? overflow-y: auto;
? background-color: yellow;
}
.content {
? height: 500px;
? background-color: red;
}
</style>

案例效果

監(jiān)聽dom元素滾動到了可視區(qū)?

場景:當某個元素滾動到可視區(qū)時,為其添加動畫樣式(animate.css)。

common/utils.js

export const isElementNotInViewport = function(el) {
?? ?if (el) {
?? ??? ?let rect = el.getBoundingClientRect();
?? ??? ?return (
?? ??? ??? ?rect.top >=
?? ??? ??? ??? ?(window.innerHeight || document.documentElement.clientHeight) ||
?? ??? ??? ?rect.bottom <= 0
?? ??? ?);
?? ?}
};

在組件內的使用

import { isElementNotInViewport } from "common/utils";
export default {
? ?...
? data() {
? ? return {
? ? ? header_Animate: false
? ? }
? },
? mounted() {
? ? // 監(jiān)聽滾動事件
? ? window.addEventListener("scroll", this.scrollToTop);
? },
? beforeRouteLeave(to, form, next) {
? ? // 離開路由移除滾動事件
? ? window.removeEventListener('scroll',this.scrollToTop);
? ? next();
? },
? methods: {
? ? // 滾動事件
? ? scrollToTop() {
?? ? ?!isElementNotInViewport(this.$refs.header) ? this.header_Animate = true: '';
? ? }
? }
}
<template>
? <div?
? ? ref="header"?
? ? class="animate__animated"?
? ? :class="{animate__slideInLeft:header_Animate}">
? </div>
</template>

這樣就可以控制當dom元素滾動到可視區(qū)的時候,給他添加動畫樣式了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue實現簡單基礎的圖片裁剪功能

    Vue實現簡單基礎的圖片裁剪功能

    這篇文章主要為大家詳細介紹了如何利用Vue2實現簡單基礎的圖片裁剪功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-09-09
  • Vue路由切換頁面不更新問題解決方案

    Vue路由切換頁面不更新問題解決方案

    這篇文章主要介紹了Vue路由切換頁面不更新問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 淺析在Vue中watch使用的必要性及其優(yōu)化

    淺析在Vue中watch使用的必要性及其優(yōu)化

    這篇文章主要來和大家深入討論一下在Vue開發(fā)中是否有必要一定用watch,如果換成watcheffect會如何,文中的示例代碼講解詳細,需要的可以參考下
    2023-12-12
  • vue-列表下詳情的展開與折疊案例

    vue-列表下詳情的展開與折疊案例

    這篇文章主要介紹了vue-列表下詳情的展開與折疊案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue-router路由參數刷新消失的問題解決方法

    vue-router路由參數刷新消失的問題解決方法

    本篇文章主要介紹了vue-router路由參數刷新消失的問題解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vue中如何配置proxy代理

    vue中如何配置proxy代理

    這篇文章主要介紹了vue中如何配置proxy代理問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue-pdf打包后無法預覽問題及修復方式

    vue-pdf打包后無法預覽問題及修復方式

    這篇文章主要介紹了vue-pdf打包后無法預覽問題及修復方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue項目中實現描點跳轉scrollIntoView的案例

    Vue項目中實現描點跳轉scrollIntoView的案例

    這篇文章主要介紹了Vue項目中實現描點跳轉scrollIntoView的案例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue中的vue-resource示例詳解

    Vue中的vue-resource示例詳解

    Vue與后臺Api進行交互通常是利用vue-resource來實現的,本質上vue-resource是通過http來完成AJAX請求相應的。這篇文章主要介紹了Vue中的vue-resource示例詳解,需要的朋友可以參考下
    2018-11-11
  • vue進度條組件實現代碼(可拖拽可點擊)

    vue進度條組件實現代碼(可拖拽可點擊)

    在日常開發(fā)中隨著需求的個性化,邏輯的復雜化,自定義組件也變得越來越常見,這篇文章主要給大家介紹了關于vue進度條組件實現(可拖拽可點擊)的相關資料,需要的朋友可以參考下
    2023-12-12

最新評論

福海县| 鹿邑县| 隆林| 兴仁县| 叙永县| 屯昌县| 成安县| 马尔康县| 巴青县| 砀山县| 奉贤区| 商洛市| 嵩明县| 周至县| 佳木斯市| 河曲县| 苍溪县| 海林市| 屯门区| 镇平县| 扬中市| 兴安县| 公主岭市| 松潘县| 东乡族自治县| 渝北区| 延长县| 灌云县| 孙吴县| 云阳县| 菏泽市| 赞皇县| 志丹县| 茶陵县| 石林| 日喀则市| 花垣县| 洪雅县| 昌平区| 南川市| 安多县|