iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue如何实现侧边定位栏
  • 687
分享到

vue如何实现侧边定位栏

2023-07-02 18:07:29 687人浏览 独家记忆
摘要

今天小编给大家分享一下Vue如何实现侧边定位栏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现思路:通过点击侧边栏,定位到

今天小编给大家分享一下Vue如何实现侧边定位栏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

实现思路:

通过点击侧边栏,定位到响应的内容
2.滑动滑动栏,侧边栏同步高亮对应的item

效果图如下:

vue如何实现侧边定位栏

1. 通过点击侧边栏,定位到响应的内容

如果是用html的话我们可以用 锚点 的办法进行定位;
在vue中,我们可以通过获取组件的高度,将滑动栏定位到对应的位置

在进入主题之前我们需要先了解3个关于获取高度的属性

scrollTop 滑动栏中的滑块离视区最顶部的距离

document.documentElement.scrollTop || document.body.scrollTop

clientHeight 视区的高度

document.documentElement.clientHeight || document.body.clientHeight

scrollHeight 滑动栏里面的滑动块的高度

document.documentElement.scrollHeight || document.body.scrollHeight

vue如何实现侧边定位栏

vue中我们可以通过this.$refs.xxx.$el.offsetTop获取组件距离页面最顶部的距离,通过赋值给document.documentElement.scrollTop选中组件距离页面最顶部的高度,控制滑动框滑到页面对应位置。相关代码如下:

页面代码

// 页面组件代码<div>    <btl-header />    <div class="reports">      <side-bar v-bind="sideBarData" />      <div class="main">        <live-overview-part          ref="liveOverview"          :shopNameOptions="allShopName"          :dateSelectorData="dateType_0" />        <procurenment-alert          ref="procurenmentAlert"          :carBrandOptions="carBrandOptions"          :shopNameOptions="allShopName"          :dateSelectorData="dateType_2" />        <sales-overview          ref="salesOverview"          :shopNameOptions="allShopName"          :dateSelectorData1="pardsType_0"          :dateSelectorData2="dateType_1" />        <inquiry-data          ref="inquiryData"          :shopNameOptions="allShopName"          :dateSelectorData="dateType_2" />        <transaction-data          ref="transactionData"          :carBrandOptions="carBrandOptions"          :shopNameOptions="allShopName"          :qualityOptions="qualityOptions"          :colorSeries="colorSeries"          :dateSelectorData="dateType_2" />      </div>    </div>//  获取组件距离页面顶部高度 !!! <script>mounted() {    // !!注意,需要页面渲染完才能获取各个盒子的高度    this.sideBarData.offsetTopliveOverview = this.$refs.liveOverview.$el.offsetTop;    this.sideBarData.offsetTopprocurenmentAlert = this.$refs.procurenmentAlert.$el.offsetTop;    this.sideBarData.offsetTopsalesOverview = this.$refs.salesOverview.$el.offsetTop;    this.sideBarData.offsetTopinquiryData = this.$refs.inquiryData.$el.offsetTop;    this.sideBarData.offsetToptransactionData = this.$refs.transactionData.$el.offsetTop;   },  </script>

侧边栏实现代码

// 侧边栏代码<template>  <hn-card class="sidebar">    <ul class="nav-tabs">      <li        class="activeTip"        ref="activeTip"></li>      <li        @click="clickanchor('liveOverview',0)"        class="item"        :class="active==='liveOverview'?'active':'noActive'">实时总览</li>      <li        class="item"        :class="active==='procurenmentAlert'?'active':'noActive'"        @click="clickanchor('procurenmentAlert',1)">采购预警</li>      <li        class="item"        :class="active==='salesOverview'?'active':'noActive'"        @click="clickanchor('salesOverview',2)">销售概览</li>      <li        class="item"        :class="active==='inquiryData'?'active':'noActive'"        @click="clickanchor('inquiryData',3)">询价数据</li>      <li        class="item"        :class="active==='transactionData'?'active':'noActive'"        @click="clickanchor('transactionData',4)">交易数据</li>      <li        class="item"        :class="active==='top'?'active':'noActive'"        @click="clickanchor('top')">返回顶部</li>    </ul>  </hn-card></template>// 侧边栏js<script>methods: {// 点击侧边栏item时触发// 通过document.documentElement.scrollTop控制滑动栏位置    clickanchor(itemName, i) {      if (itemName === 'top') {        document.documentElement.scrollTop = 0; // 滑动栏位置        this.active = itemName;        this.$refs.activeTip.style.transfORM = `translateY(${196}px)`;        return;      }      this.$refs.activeTip.style.transform = `translateY(${i * 39}px)`;      document.documentElement.scrollTop = this[`offsetTop${itemName}`];      this.active = itemName;    },</script>

2. 滑动滑动栏,侧边栏同步高亮对应的item

通过监听滑动栏滑动,获取滑动块距离页面顶部的高度,和组件距离页面顶部的高度进行对比,反向设置滑动栏的高亮位置;

// 监听滑动栏滚动,通过监听滚动到的位置,到    scrollChange() {      const scrollTop = document.documentElement.scrollTop || document.body.scrollTop || 0;      const windowHeight = document.documentElement.clientHeight || document.body.clientHeight || 0;      const scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight || 0;      const allContentOffsettop = [        'offsetTopliveOverview',        'offsetTopprocurenmentAlert',        'offsetTopsalesOverview',        'offsetTopinquiryData',        'offsetToptransactionData'];      if (scrollTop === 0) {        if (this.active !== 'top') {          this.active = 'top';          this.$refs.activeTip.style.transform = `translateY(${196}px)`;        }      } else if (scrollTop + windowHeight > scrollHeight || scrollTop + windowHeight === scrollHeight) {        if (this.active !== 'transactionData') {          this.active = 'transactionData';          this.$refs.activeTip.style.transform = `translateY(${157}px)`;        }      } else {        for (let i = 0; i < allContentOffsettop.length; i++) {          if (this[allContentOffsettop[i]] - 1 > scrollTop) {            const contentName = allContentOffsettop[i - 1].replace('offsetTop', '');            if (this.active !== contentName) {              this.active = contentName;              this.$refs.activeTip.style.transform = `translateY(${(i - 1) * 39}px)`;            }            break;          }        }      }    },  },};

以上就是“vue如何实现侧边定位栏”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: vue如何实现侧边定位栏

本文链接: https://www.lsjlt.com/news/343684.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue如何实现侧边定位栏
    今天小编给大家分享一下vue如何实现侧边定位栏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现思路:通过点击侧边栏,定位到...
    99+
    2023-07-02
  • vue实现侧边定位栏
    本文实例为大家分享了vue实现侧边定位栏的具体代码,供大家参考,具体内容如下 实现思路: 1.通过点击侧边栏,定位到响应的内容2.滑动滑动栏,侧边栏同步高亮对应的item 效果图如下...
    99+
    2024-04-02
  • JavaScript如何仿淘宝实现固定右侧侧边栏
    这篇文章主要介绍了JavaScript如何仿淘宝实现固定右侧侧边栏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。<!DOCTYPE html><h...
    99+
    2023-06-29
  • js如何实现淘宝固定侧边栏
    这篇文章主要介绍“js如何实现淘宝固定侧边栏”,在日常操作中,相信很多人在js如何实现淘宝固定侧边栏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js如何实现淘宝固定侧边栏”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-02
  • js实现淘宝固定侧边栏
    本文实例为大家分享了js实现淘宝固定侧边栏的具体代码,供大家参考,具体内容如下 1.实现效果: 当页面运行到banner区域时,右边侧边栏改为固定定位,当页面运行到主体区域时,右边...
    99+
    2024-04-02
  • JavaScript仿淘宝实现固定右侧侧边栏
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g...
    99+
    2024-04-02
  • vue实现多级侧边栏的封装
    本文实例为大家分享了vue实现多级侧边栏的封装代码,供大家参考,具体内容如下 父组件 // 左侧导航菜单封装 <template>   <div class="na...
    99+
    2024-04-02
  • 如何用vue实现一个侧边栏拖动功能
    这篇文章主要介绍了如何用vue实现一个侧边栏拖动功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用vue实现一个侧边栏拖动功能文章都会有所收获,下面我们一起来看看吧。首先,需要安装 Vue.js,可以使用...
    99+
    2023-07-05
  • Android开发实现根据字母快速定位侧边栏
    按首字母对List排列,并根据首字母快速定位的实现,在Android开发中被大量应用,今天我也来亲自实现一下,将这个控件封装起来,也方便以后的使用。大体上可以分为两步来实现这个控件:...
    99+
    2024-04-02
  • Vue如何实现侧边导航栏于Tab页关联
    这篇文章主要为大家展示了“Vue如何实现侧边导航栏于Tab页关联”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue如何实现侧边导航栏于Tab页关联”这篇文章吧。技术栈侧边栏用Antdtab使用...
    99+
    2023-06-25
  • 小程序如何实现侧边栏切换
    这篇文章主要介绍了小程序如何实现侧边栏切换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇小程序如何实现侧边栏切换文章都会有所收获,下面我们一起来看看吧。效果图如下:实现步骤:sort.wxml<!--主盒...
    99+
    2023-07-02
  • css如何设置侧边栏
    这篇文章给大家分享的是有关css如何设置侧边栏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。    css设置侧边栏的方法:首先创...
    99+
    2024-04-02
  • 微信小程序如何实现侧边导航栏
    今天小编给大家分享一下微信小程序如何实现侧边导航栏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图wxml<vie...
    99+
    2023-07-02
  • 如何使用HTML和CSS实现一个固定侧边栏布局
    在网页设计中,固定侧边栏布局是一种常见且实用的布局方式。通过固定侧边栏布局,我们可以将导航菜单、搜索栏或其他重要内容固定在网页的一侧,使其在滚动页面时保持可见性。在本文中,我将介绍如何使用HTML和CSS实现一个简单而实用的固定侧边栏布局,...
    99+
    2023-10-21
    CSS html 侧边栏布局
  • bootstrap如何自定义侧边导航栏样式
    这篇文章主要讲解了“bootstrap如何自定义侧边导航栏样式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“bootstrap如何自定义侧边导航栏样式”吧!...
    99+
    2024-04-02
  • react如何实现侧边栏联动头部导航栏效果
    目录实现思路路由表侧边栏渲染容器组件(侧边栏)store头部导航栏容器组件UI组件总结项目中使用react+antd design+redux+react-reouter-dom 实...
    99+
    2023-03-12
    react侧边栏 react侧边栏联动 react头部导航栏效果
  • 原生JS实现分享侧边栏
    本文分享一个用原生JS实现的分享侧边栏,实现效果如下: 以下是代码实现,方便大家复制粘贴。 <!DOCTYPE html> <html> <h...
    99+
    2024-04-02
  • vue如何设置导航栏和侧边栏为公共页面
    本文小编为大家详细介绍“vue如何设置导航栏和侧边栏为公共页面”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue如何设置导航栏和侧边栏为公共页面”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,项目结构如下...
    99+
    2023-07-04
  • bootstrap侧边导航栏实现原理
    这篇文章主要介绍bootstrap侧边导航栏实现原理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!bootstrap自带的响应式导航栏是向下滑动的,有时满足不了个性化的需求,需要做一个类似于android drawe...
    99+
    2023-06-14
  • 小程序实现侧边栏切换
    本文实例为大家分享了小程序实现侧边栏切换的具体代码,供大家参考,具体内容如下 效果图如下: 实现步骤: sort.wxml <!--主盒子--> <view cl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作