Vue Router转到新页面的顶部

时间:2018-12-08 22:05:30

标签: javascript vue.js vue-router

现在,在我的Vue应用程序中,当我单击<router-link>时,它会转到页面,但与上一页具有相同的滚动级别(因为该链接只是替换了该组件)。

我想知道是否有vue-router功能使页面移至顶部,还是我需要使用其他JS编程来实现此目的。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

Vue路由器在路由更改之前,期间和之后调用了几种防护措施和功能。根据您的情况,有一个专用功能可以让您覆盖名为scrollBehavior的默认滚动行为。用两个route objects和一个包含x和y坐标的对象以及一个选择器来选择页面上的元素以用作偏移量。

要使用它,请更改定义路由器的代码并添加class BSTNode: """ Represents nodes in a binary search tree. """ def __init__(self, key, value=None): self.key = key self.value = value self.left = None self.right = None def height(self): """Return the height of this node.""" left_height = 1 + self.left.height() if self.left else 0 right_height = 1 + self.right.height() if self.right else 0 return max(left_height, right_height) def __repr__(self): return "<BSTNode: key={!r}, value={!r}, id={}>".format(self.key, self.value, id(self)) class BSTException(Exception): pass class BST: """ Simple recursive binary search tree implementation. """ def __init__(self, NodeClass=BSTNode): self.BSTNode = NodeClass self.root = None self.nodes = 0 # Updated after each call to insert self.newest_node = None def find(self, find_key): """Return node with key find_key if it exists. If not, return None. """ return self._findhelp(self.root, find_key) def insert(self, new_key, value=None): """Insert a new node with key new_key into this BST, increase node count by one and return the inserted node.""" if self.find(new_key) is not None: raise KeyError("This BST already contains key {0!r}".format(new_key)) self.root = self._inserthelp(self.root, new_key, value) self.nodes += 1 return self.newest_node def height(self): """Return the height of this tree.""" return self.root.height() if self.root else -1 def __iter__(self): """Return an iterator of the keys of this tree in sorted order.""" for node in self._visit_inorder(self.root): yield node.key def __len__(self): return self.nodes def remove(self, key): temp=self.find(key) if temp != None: self.root = self.removehelp(self.root, key) self.nodes-=1 return temp def removehelp(self, node, key): if node==None: return None if node.key > key: node.left=self.removehelp(node.left, key) elif node.key < key: node.right=self.removehelp(node.right, key) else: if node.left == None: return node.right elif node.right==None: return node.left else: temp=self.findmax(node.left) node.key=temp.key node.left=self.removemax(node.left) return node def removemax(self,node): if node.right==None: return node.left node.right=self.removemax(node.right) return node def findmax(self, node): if node.right==None: return node return self.findmax(node.right) def _findhelp(self, node, find_key): if node == None or find_key==node.key: return node elif node.key > find_key: return self._findhelp(node.left, find_key) else: return self._findhelp(node.right, find_key) def _inserthelp(self, node, new_key, value): if node is None: self.newest_node = self.BSTNode(new_key, value) return self.newest_node if node.key >= new_key: node.left=self._inserthelp(node.left, new_key, value) else: node.right=self._inserthelp(node.right, new_key, value) return node 函数:

scrollBehavior