>  기사  >  웹 프론트엔드  >  Vue 스크롤 동작 소개

Vue 스크롤 동작 소개

小云云
小云云원래의
2018-02-07 11:11:461352검색

이 글은 주로 Vue의 스크롤 동작을 여러분께 소개하고 있습니다. 편집자는 이것이 꽤 좋다고 생각하므로 이제 공유하고 참고용으로 제공하겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

스크롤 동작

라우팅의 스크롤 동작은 무엇인가요

새 경로로 전환할 때 페이지를 다시 로드하는 것처럼 페이지가 위로 스크롤되거나 원래 스크롤 위치를 유지하기를 원합니다

참고: 이 기능은 HTML5 기록 모드에서만 사용할 수 있습니다. 이 모드에서는 서비스를 시작해야 합니다

스크롤링 스크롤을 수행하기 위해 scrollBehavior 메서드를 사용합니다

scrollBehavior 메서드는 라우팅 개체와 주고받습니다. 세 번째 매개변수SavedPosition은 popstate 탐색(브라우저의 앞으로/뒤로 버튼에 의해 트리거됨)일 때만 사용할 수 있습니다.

효과


<p 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>
</p>
<script>
  var Home = {
    template:"<p>home</p>"
  }
  var Foo = {
    template:"<p>foo</p>"
  }
  var Bar = {
    template:
      `
        <p>
          bar
          <p style="height:500px;background: yellow;"></p>
          <p id="an1" style="height:500px;background: red;">红色页面</p>
          <p id="an2" style="height:300px;background: blue;">蓝色页面</p>
        </p>
      `
  }

  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 스크롤 동작 예시 분석

위 내용은 Vue 스크롤 동작 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.