详解10分钟学会vue滚动行为

发布时间 - 2026-01-11 03:21:49    点击率:

滚动行为

什么是路由的滚动行为

当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样

注意: 这个功能只在 HTML5 history 模式下可用。在这个模式下我们需要启动一个服务

我们用scrollBehavior 方法来做路由滚动

scrollBehavior 方法接收 to 和 from 路由对象。第三个参数 savedPosition 当且仅当 popstate 导航 (通过浏览器的 前进/后退 按钮触发) 时才可用

下面我们做一个小案例来了解一下

效果

<div id="app">
  <h1>滚动行为</h1>
  <ul>
    <li><router-link to="/">首页</router-link></li>
    <li><router-link to="/foo">导航</router-link></li>
    <li><router-link to="/bar">关于</router-link></li>
    <li><router-link to="/bar#an1">红色页面</router-link></li>
    <li><router-link to="/bar#an2">蓝色页面</router-link></li>
  </ul>
  <router-view></router-view>
</div>
<script>
  var Home = {
    template:"<div>home</div>"
  }
  var Foo = {
    template:"<div>foo</div>"
  }
  var Bar = {
    template:
      `
        <div>
          bar
          <div style="height:500px;background: yellow;"></div>
          <p id="an1" style="height:500px;background: red;">红色页面</p>
          <p id="an2" style="height:300px;background: blue;">蓝色页面</p>
        </div>
      `
  }

  var router = new VueRouter({
    mode:"history",
    //控制滚动位置
    scrollBehavior (to, from, savedPosition) {
      //判断如果滚动条的位置存在直接返回到当前位置,否者返回到起点
      if (savedPosition) {
        return savedPosition
      } else {
        if (to.hash) {
          return {selector: to.hash}
        }
      }
    },
    routes:[
      {
        path:"/",component:Home
      },
      {
        path:"/foo",component:Foo
      },
      {
        path:"/bar",component:Bar
      }
    ]
  });
  var vm = new Vue({
    el:"#app",
    router
  });
</script>

vue滚动小案例

https://besmall.github.io/vue-gundong/

https://github.com/Besmall/vue-gundong

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


# vue滚动行为  # vue  # 滚动  # 滚动条  # vue2.0 better-scroll 实现移动端滑动的示例代码  # Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法  # vue滚动轴插件better-scroll使用详解  # 解决Vue页面固定滚动位置的处理办法  # vue中实现移动端的scroll滚动方法  # 就像  # 在这个  # 模式下  # 或者是  # 做一个  # 只在  # 来做  # 第三个  # 首页  # 时才  # 到新  # 大家多多  # 加载  # app  # gt  # id  # js  # lt  # div 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  java ZXing生成二维码及条码实例分享  如何快速打造个性化非模板自助建站?  如何在万网开始建站?分步指南解析  如何为不同团队 ID 动态生成多个独立按钮  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  jquery插件bootstrapValidator表单验证详解  如何用wdcp快速搭建高效网站?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel怎么实现模型属性的自动加密  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  网站制作价目表怎么做,珍爱网婚介费用多少?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  北京企业网站设计制作公司,北京铁路集团官方网站?  实例解析Array和String方法  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Python自动化办公教程_ExcelWordPDF批量处理案例  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何快速辨别茅台真假?关键步骤解析  Laravel如何处理和验证JSON类型的数据库字段  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  千库网官网入口推荐 千库网设计创意平台入口  如何实现javascript表单验证_正则表达式有哪些实用技巧  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  高性价比服务器租赁——企业级配置与24小时运维服务  在线教育网站制作平台,山西立德教育官网?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何快速搭建安全的FTP站点?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel如何处理文件下载请求?(Response示例)  晋江文学城电脑版官网 晋江文学城网页版直接进入  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  如何用美橙互联一键搭建多站合一网站?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  javascript基本数据类型及类型检测常用方法小结  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何在万网主机上快速搭建网站?