页面跳转,A跳到B,B再返回A时自动定位到离开A时的位置

<template>
  <div class="hello"  @scroll="scrollLoad" id="myScrollBox">
    <h1>{{ msg }}</h1>
    <ul>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
    </ul>
    <button @click="goForward">go 2</button>
    <ul>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
      <li class="my-li">aaaaaaaaa</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  data() {
    return {
      msg: "this is hello 1 !",
      lengthToTop: 0
    };
  },

  beforeRouteLeave(to, from, next) {
    this.recordViewPortPosition();
    next();
  },

  mounted: function() {
    this.setViewPortPosition();
  },

  methods: {
    goForward: function() {
      this.$router.push("h2");
    },

    // 获得距离顶部的位置,暂存一个变量里
    // 本方法配合recordViewPortPosition、setViewPortPosition使用
    scrollLoad: function() {
      let box = document.getElementById("myScrollBox");
      this.lengthToTop = box.scrollTop;
    },

    // 离开首页时记录距离顶部的位置,存到sessionStorage里,方便回来时取用
    recordViewPortPosition: function() {
      sessionStorage.lengthToTop = this.lengthToTop;
    },

    // 离开首页再返回时,重新定位到离开时的位置
    setViewPortPosition: function() {
      let lengthToTop = sessionStorage.lengthToTop;
      if (lengthToTop === null || lengthToTop === undefined) {
        lengthToTop = 0;
      }
      document.getElementById("myScrollBox").scrollTop = lengthToTop; // 距离顶部100px就直接写scrollTop = 100, 不要写100+“px”
    }
  }
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.hello {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: scroll;
}
li {
  display: block;
  height: 100px;
  width: 300px;
  border: 1px solid #000;
  font-size: 15px;
}
</style>

原文地址:https://www.cnblogs.com/longxia777/p/9250764.html

时间: 2024-10-12 03:47:34

页面跳转,A跳到B,B再返回A时自动定位到离开A时的位置的相关文章

微信浏览器跳转页面后再返回,如何恢复到跳转前的位置的问题。

以商品列表页打比方, 众所周知,点击商品进入详情页要保证不损坏当前列表页状态的做法通常是在a标签上加上target=_blank进行新开一个窗口打开详情页 这个做法是非常普遍的,包括很多很多牛叉的网站都是这么玩的. 但是在微信浏览器里行不通  因为微信浏览器只有一个窗口   无论任何形式的跳转它都会销毁当前窗口的内容链接新的页面 所以不管是什么target=_blank啊还是什么history.go(-1)啊  统统都会强制刷新重新渲染页面 因为我是干PHP的,所以面对这个问题第一想到的就是用c

解决TabActivity中子页面不通过导航跳转到另一个页面的问题

问题:当你的导航在TabActivity中 而子页面的一个按钮需要切换到其中的某一个导航页面 转载请注明出处:http://blog.csdn.net/x605940745 demo下载地址:http://download.csdn.net/detail/x605940745/7353695 package com.example.shows; import android.app.TabActivity; import android.content.BroadcastReceiver; im

导航固定时页面内锚点跳转问题

写在前面: 记录对一个小问题的不算解决的方法,大家如果有更好的方法,欢迎交流,谢谢 Demo百度云链接:http://pan.baidu.com/s/1qW9NLlM 问题说明:上面导航栏固定,页面内实现锚点平滑跳转,跳转时如何使页面处于导航栏之下? 解决方式:通过一个div,给div导航的高度,每次跳至div处 问题图片: 希望蓝色位于导航下方: 解决后的问题图片: 补加一个div,定位到红色处 页面平滑跳转代码javascript <script> $('.learnmore').clic

总结JS实现页面的刷新和跳转

使用iframe.弹出子页面刷新父页面iframeparent.location.reload(); 弹出子页面window.opener.location.reload();--这个方法是我尝试过的,可以成功实现我想要的功能,其他的没有尝试,不能保证绝对的正确. 子窗口刷新父窗口 self.window.opener.locaction.reload(); 刷新一open()方法打开的窗口 window.opener.location.href = window.opener.location

解决TabActivity中子页面不通过导航跳转到还有一个页面的问题

问题:当你的导航在TabActivity中 而子页面的一个button须要切换到当中的某一个导航页面 转载请注明出处:http://blog.csdn.net/x605940745 demo下载地址:http://download.csdn.net/detail/x605940745/7353695 package com.example.shows; import android.app.TabActivity; import android.content.BroadcastReceiver

html(对php也有效)页面自动刷新和跳转(简单版本)

<html>    <head><title>html页面自动刷新和跳转</title><meta http-equiv="Refresh" content="20; page.php"> /* content="秒数; url=跳转页面的文件或地址"> */    </head><body></body></html> 简单吧.

asp.net mvc输出自定义404等错误页面,非302跳转。

朋友问到一个问题,如何输出自定义错误页面,不使用302跳转.当前页面地址不能改变. 还要执行一些代码等,生成一些错误信息,方便用户提交反馈. 500错误,mvc框架已经有现成解决方法: filters.Add(new HandleErrorAttribute()); 404错误目前想到的解决方法: 先上代码 Global.asax: 1 protected void Application_Error(object sender, EventArgs e) 2 { 3 var ex = Serv

自制通过html网页自动跳转代码跳转页面

建设网站时,我们经常会遇到需要跳转页面的情况,例如我们的网站分中英文版本,网站程序索引页不是直接放在根目录下,而是分别放在"en"和"cn"目录中区分中英版本,打开网站时,想直接跳转到en目录访问英文版,则需要使用跳转代码跳转后方可以访问.下面我们看一下如何通过html代码跳转页面. <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

iOS中的视图跳转的三种方式(代码跳转,根据桥跳转,按钮跳转)

#import "ViewController.h" #import "SecondViewController.h" @interface ViewController () @property (retain, nonatomic) IBOutlet UITextField *textField; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // D