滾動—橫向滾動時,如何直接滾動到對應的內容板塊

  • 使用scrollIntoView方法
  • 方法解讀
    • scrollIntoView 是 HTML 元素(HTMLElement)的一個方法。當調用該方法時,它會嘗試將調用它的元素滾動到瀏覽器的可視區域內。這個方法特別適用于處理頁面上的滾動行為,比如讓用戶能夠快速定位到頁面的某個部分。
    • ?方法的語法

      element.scrollIntoView(alignToTop);

      或者

      element.scrollIntoView(options);
      參數解讀
    • alignToTop(布爾值)

      • 如果是 true,則元素的頂部會盡可能地與視口的頂部對齊。

      • 如果是 false,則元素的底部會盡可能地與視口的底部對齊。

      • 注意:這個參數是舊的用法,現在推薦使用 options 對象。

    • options(對象)

      • 這是一個配置對象,用于更精細地控制滾動行為。它包含以下屬性:

        • behavior

          • 可選值:

            • "auto":默認行為,滾動會立即發生,可能會導致頁面快速跳動。

            • "smooth":滾動會以平滑的方式進行,用戶體驗更好。

        • block

          • 可選值:

            • "start":元素的頂部會與視口的頂部對齊。

            • "center":元素的中心會與視口的中心對齊。

            • "end":元素的底部會與視口的底部對齊。

            • "nearest":根據當前滾動位置,選擇最接近的對齊方式。

        • inline

          • 可選值:

            • "start":元素的左邊界會與視口的左邊界對齊。

            • "center":元素的中心會與視口的中心對齊。

            • "end":元素的右邊界會與視口的右邊界對齊。

            • "nearest":根據當前滾動位置,選擇最接近的對齊方式。

    • ?示例代碼

      示例1:使用布爾值參數

      const element = document.getElementById("myElement");
      element.scrollIntoView(true); // 將元素頂部與視口頂部對齊

      示例2:使用配置對象

      const element = document.getElementById("myElement");
      element.scrollIntoView({behavior: "smooth",block: "center",inline: "nearest"
      });

      瀏覽器兼容性

      scrollIntoView 方法在現代瀏覽器中得到了廣泛支持。不過,options 參數的兼容性可能稍差一些,特別是在一些較舊的瀏覽器中。建議在使用時檢查瀏覽器的兼容性,或者使用一些 polyfill 來確保兼容性。

      5. 使用場景

      • 頁面導航:在單頁應用(SPA)中,用戶點擊導航鏈接時,可以使用 scrollIntoView 將目標內容滾動到可視區域。

      • 表單驗證:當表單提交失敗時,可以將錯誤提示信息滾動到可視區域,方便用戶查看。

      • 6. 注意事項

      • 滾動范圍:如果元素已經處于可視區域內,scrollIntoView 可能不會有任何效果。

      • 滾動容器:默認情況下,scrollIntoView 會滾動瀏覽器的視口。如果元素位于一個可滾動的容器內(如 overflow: autodiv),則會滾動該容器。

      • 性能問題:頻繁調用 scrollIntoView 可能會導致性能問題,特別是在滾動行為比較復雜的情況下。建議合理控制調用頻率。

      • 滾動到特定元素:在長頁面中,快速定位到用戶需要查看的內容。

vue示例代碼

<el-scrollbar ref="scrollbarRef"><div class="text-xs text-[#343A3F] flex w-full"><el-buttonclass="!h-5 !px-2 !py-0 !text-[10px] !text-[#343A3F] flex items-center !rounded-md"v-for="(item, index) in currentPageItems":key="index":class="{'!text-[#129bfe] !bg-[#CFEAFE] !border-transparent':selectedStageIndex === currentPage * pageSize + index,}"@click="handleStageSelect(currentPage * pageSize + index)">{{ item.stage }}</el-button></div></el-scrollbar><script setup lang="ts">
import { ref, nextTick, onMounted } from 'vue';const scrollbarRef = ref(null); // 定義一個 ref 來引用 el-scrollbar// 在頁面加載時自動滾動到選中的 el-button 位置
onMounted(() => {nextTick(() => {nextTick(() => {// 確保 DOM 完全渲染后再執行滾動邏輯if (scrollbarRef.value && selectedStageIndex.value !== null) {const buttonIndex = selectedStageIndex.value % pageSize; // 計算當前選中的按鈕在當前頁的索引const buttonElement = scrollbarRef.value.$el.querySelector(`.el-button:nth-child(${buttonIndex + 1})`); // 獲取對應的按鈕元素if (buttonElement) {buttonElement.scrollIntoView({ behavior: 'auto', block: 'center' }); // 滾動到該按鈕位置}}});});
});
</script>#注釋
寫兩遍nextTick是等滾動條的中el-button元素全部加載完之后再執行scrollIntoView方法,如果寫一遍可能沒加載就執行了
具體寫幾個視代碼邏輯而定

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909047.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML5 定位網頁元素

1. 定位&#xff08;position&#xff09; position&#xff1a;static&#xff08;標準&#xff09; position&#xff1a;relative&#xff08;相對定位&#xff09; 偏移量的方向 相對定位的規律 浮動元素設置相對定位 position&#xff1a;absolute&#xff08;絕對…

分類數據集 - 植物分類數據集下載

數據集介紹&#xff1a;植物分類數據集&#xff0c;真實場景高質量圖片數據&#xff1b;適用實際項目應用&#xff1a;自然場景植物分類項目&#xff0c;以及作為通用分類數據集場景數據的補充&#xff1b;數據集類別&#xff1a;標注說明&#xff1a;采用文件夾來區分不同的目…

?React Hooks 的閉包陷阱問題

這是主包在面試中遇到的一道題目&#xff0c;面試官的問題是&#xff1a;"這個頁面初次展示出來時Count和step的值是什么&#xff0c;我點擊按鈕count和step的值有什么變化&#xff1f;“ 這個題目主包回答的不好&#xff0c;所以想做一個總結。 題目 import React, { …

新基建浪潮下:中國新能源汽車充電樁智慧化建設與管理實踐

在新基建戰略的強力推動下&#xff0c;中國新能源汽車充電樁建設正迎來智慧化升級的重要機遇期。作為連接能源革命與交通革命的關鍵節點&#xff0c;充電基礎設施的智能化轉型不僅關乎新能源汽車產業的可持續發展&#xff0c;更是構建新型電力系統的重要支撐。當前&#xff0c;…

如何在多任務環境中設定清晰的項目優先級?

在多任務環境中設定清晰的項目優先級需要明確項目戰略價值、緊急性、資源利用效率、風險管理。其中&#xff0c;明確項目戰略價值尤為重要&#xff0c;它決定了項目對組織整體戰略目標實現的貢獻程度。例如&#xff0c;戰略價值高的項目&#xff0c;即使不緊急&#xff0c;也應…

【Django】性能優化-普通版

性能優化&#xff1a; 思路 通常無論是什么編程語言或者是什么框架&#xff0c;瓶頸通常都是數據庫相關的操作&#xff1b; 大部分的查詢慢的問題接口都是頻繁查庫、全盤掃描、多層for循環嵌套、高頻查redis、序列化時多級外鍵&#xff1b; 多用O(1)查找復雜度的數據 合理使…

數據治理域——離線數據開發

摘要 文本主要介紹了離線數據開發相關內容,包括業務與流程、阿里MaxCompute系統設計以及阿里調度系統設計。離線數據開發是大數據開發核心組成部分,用于處理批量數據,支持企業多種需求,其流程涵蓋需求調研、數據源接入等環節。阿里MaxCompute系統架構與特點被闡述,調度系…

python-docx 庫教程

Python-docx 庫介紹 官網文檔 python-docx 是一個用于創建和修改 Microsoft Word (.docx) 文件的 Python 庫。它允許你通過編程方式生成格式化的文檔&#xff0c;添加文本、段落、表格、圖片等元素&#xff0c;而無需依賴 Microsoft Word 應用程序。 主要功能 創建新的 Word…

Ansible小試牛刀

注意事項 除了安裝的zabbix相關組件 使用此腳本安裝的所有軟件版本均為系統默認版本 安裝軟件 zabbix相關組件&#xff0c;包括server&#xff0c;agent等 MySQL Redis NGINX openjdk maven nodejs keepalived iptables ipvsadm 使用劇本 --- - hosts: allname…

MCP使用

什么是MCP Model Context Protocol (MCP) 是由 Anthropic 公司于 2024 年 11 月推出的一種開放協議標準&#xff0c;目的在于標準化LLM 與外部數據源、工具及服務之間的交互方式。MCP 被廣泛類比為“AI 領域的 USB-C 接口” MCP與Function Calling的區別 MCP 的核心概念 1.…

邊緣計算一:現代前端架構演進圖譜 —— 從 SPA 到邊緣渲染

過去十年&#xff0c;前端項目架構經歷了從簡單 HTML 文件到復雜框架的飛躍&#xff0c;但很多開發者忽略了**“渲染位置”與“資源交付方式”**對體驗與性能的根本性影響。 從最初的瀏覽器渲染&#xff0c;到現在“在離用戶最近的地方動態返回 HTML”&#xff0c;架構正在悄悄…

linux學習記錄(六)三個常用命令介紹

1.vim命令 Vim是由Vi發展過來的文本編譯器&#xff0c;其代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富&#xff0c;在程序員中被廣泛使用。 1.1 語法 vim filename 1.2 vi/vim的使用 vi/vim 共分為三種模式&#xff0c;命令模式&#xff08;Command Mode&#xff09;、…

用Python獲取京東關鍵字接口的用戶指南

在電商數據分析和市場研究中&#xff0c;獲取京東平臺的關鍵字搜索結果數據具有重要意義。本文將詳細介紹如何使用Python調用京東開放平臺的API接口&#xff0c;獲取關鍵字相關的商品數據&#xff0c;并進行解析和處理。 一、準備工作 &#xff08;一&#xff09;注冊京東開發…

觀測云,全球領先的監控觀測平臺亮相亞馬遜云科技中國峰會!

觀測云每年都不會缺席亞馬遜云科技峰會 忙完一整季的產品發布&#xff0c;我們終于將目光投向這場全球頂尖的云技術盛會——2025亞馬遜云科技中國峰會。如果你也在這個領域&#xff0c;應該已經感覺到了&#xff1a;這不只是一場大會&#xff0c;而是一個信號。AI、可觀測性、…

消息隊列處理模式:流式與批處理的藝術

&#x1f30a; 消息隊列處理模式&#xff1a;流式與批處理的藝術 &#x1f4cc; 深入解析現代分布式系統中的數據處理范式 一、流式處理&#xff1a;實時數據的"活水" 在大數據時代&#xff0c;流式處理已成為實時分析的核心技術。它將數據視為無限的流&#xff0c;…

一起學習swin-transformer(一)

Transform學習鏈接 從零開始設計Transformer模型&#xff08;1/2&#xff09;——剝離RNN&#xff0c;保留Attention-CSDN博客 Transformer-PyTorch實戰項目——文本分類_transformer文本分類 pytorch-CSDN博客 從零開始設計Transformer模型&#xff08;2/2&#xff09;——…

PyQt常用控件的使用:QFileDialog、QMessageBox、QTreeWidget、QRadioButton等

文章目錄 一、控件常用函數介紹二、QFileDialog&#xff08;文件類操作&#xff09;三、QMessageBox(對話框)四、QTreeWidget&#xff08;樹結構類操作&#xff09;4.1 樹結構的初始化4.2 遞歸讀取完整樹結構4.3 兩QTreeWidget滑輪同步滑動4.4 信號槽綁定 五、QCombox改寫下拉多…

校園導航系統核心技術解析:高精度定位與 AR 實景導航的應用實踐

本文面向校園信息化建設者、技術開發者及教育行業數字化轉型關注者&#xff0c;旨在解析如何通過 “高精度定位 AR/VR 場景化服務” 技術體系&#xff0c;破解校區因建筑復雜、人流密集導致的尋路效率低下問題&#xff0c;探討如何利用現有技術解決校園內導航難題&#xff0c;…

java大文件分段下載

后端代碼 package com.jy.jy.controller;import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.a…

antd-vue - - - - - a-table排序

antd-vue - - - - - a-table排序 1. 重點代碼:2. 代碼示例&#xff1a;3. 進階版寫法 1. 重點代碼: sorter: {compare: (a, b) > a.columnsKeys - b.columnsKeys,multiple: 1, },解析&#xff1a; compare: 自定義排序函數&#xff0c;用于比較兩個對象。 multiple: 排序優…