vue实现楼层跳转效果

 更新时间:2022年03月09日 17:17:21   作者:jiyuchengzhou  
这篇文章主要为大家详细介绍了vue实现楼层跳转效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue实现楼层跳转效果的具体代码,供大家参考,具体内容如下

实现效果:当翻滚页面时,对应的选项卡也会进行相应的变化,点击选项卡也会直接跳转到对应的位置

先是获取对应的dom元素,然后再监听滚动事件,判断符合条件的元素,进行改变对应的楼层选项卡位置。

jump方法则是通过点击直接跳转到对应的位置。

整个页面代码如下:

<template>
  <div>
      <h1>这是楼层测试的页面</h1>
      <!-- 这是流程的目录 -->
      <div class="totalM">
          <div class="menu" @click="jump(0)" :class="[num==0?'sele':'']">1</div>
          <div class="menu" @click="jump(1)" :class="[num==1?'sele':'']">2</div>
          <div class="menu" @click="jump(2)" :class="[num==2?'sele':'']">3</div>
          <div class="menu" @click="jump(3)" :class="[num==3?'sele':'']">4</div>
          <div class="menu" @click="jump(4)" :class="[num==4?'sele':'']">5</div>
      </div>
      <!-- 这是楼层的内容 -->
      <div>
        <div class="h-800" style="background:red;"><h1>1</h1></div>
        <div class="h-800" style="background:yellow;"><h1>2</h1></div>
        <div class="h-800" style="background:blue;"><h1>3</h1></div>
        <div class="h-800" style="background:black;"><h1>4</h1></div>
        <div class="h-800" style="background:pink;"><h1>5</h1></div>
      </div>
  </div>
</template>

<script>
export default {
    data() {
        return {
            num:0,
        }
    },
    created() {
        var that=this
        var inner = document.getElementsByClassName('h-800');
            // 注册滚动监听事件
            window.onscroll = function() {
                // 获取滚动条距离页面底部的距离
                var tops = document.documentElement.scrollTop || document.body.scrollTop;
                // console.log(tops)
                //判断滚动的位置,从而改变楼层选项的样式
                for(var i = 0; i < inner.length; i++) {
                    if(inner[i].offsetTop <= tops+200 && tops<=inner[i].offsetTop) {
                        that.num=i
                    }
                }
            }

    },
    methods: {
        // 楼层跳转的方法index
        jump(index){
            this.num=index
            var body = document.getElementsByTagName('body')[0];
              // 获取所有的楼层
            var inner = document.getElementsByClassName('h-800');
            console.log(body)
            console.log(inner)
            console.log(index)
            console.log(inner[index].offsetTop)
            window.scrollTo(0,inner[index].offsetTop)
            // document.body.scrollTop=inner[index].offsetTop
            console.log(body.scrollTop)
        }
    },

}
</script>

<style scoped>
.h-800{
    width: 100%;
    height: 500px;
}
.totalM{
    position: fixed;
    width:100px;
    background:gray;
    right:100px;
    bottom:100px;
}
.menu{
    /* margin-bottom:10px; */
}
.sele{
    background:white;
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)

    vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)

    本篇文章主要介绍了vue mint-ui 实现省市区街道4级联动(仿淘宝京东收货地址4级联动),非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • vue路由组件路径如何用变量形式动态引入

    vue路由组件路径如何用变量形式动态引入

    这篇文章主要介绍了vue路由组件路径如何用变量形式动态引入问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 深入了解Vue之组件的生命周期流程

    深入了解Vue之组件的生命周期流程

    每个Vue实例在创建时都要经过一系列初始化, 例如设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等,同时, 也会运行一些叫作生命周期钩子的函数,接下来让我们一起来探索Vue实例被创建时都经历了什么,感兴趣的同学跟着小编一起来探讨吧
    2023-05-05
  • 详解vue2如何实现点击预览本地文件

    详解vue2如何实现点击预览本地文件

    这篇文章主要为大家详细介绍了vue2如何实现点击预览本地的word、excle、pdf文件,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • vue如何给element-ui中的el-tabs动态设置label属性

    vue如何给element-ui中的el-tabs动态设置label属性

    这篇文章主要介绍了vue如何给element-ui中的el-tabs动态设置label属性,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue3新增Teleport的问题

    vue3新增Teleport的问题

    这篇文章主要介绍了vue3新增Teleport的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 详解vuex之store源码简单解析

    详解vuex之store源码简单解析

    这篇文章主要介绍了详解vuex之store源码简单解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • vue导出excel表格的新手详细教程

    vue导出excel表格的新手详细教程

    相信大家做项目的时候,功能中都有导出模块,下面这篇文章主要给大家介绍了关于vue导出excel表格的详细教程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue修改props数据报错的问题及解决

    vue修改props数据报错的问题及解决

    这篇文章主要介绍了vue修改props数据报错的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • vue3报错提示找不到模块“./XXX.vue”或其相应的类型声明问题

    vue3报错提示找不到模块“./XXX.vue”或其相应的类型声明问题

    这篇文章主要介绍了vue3报错提示找不到模块“./XXX.vue”或其相应的类型声明问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论