怎么在vue中实现自动聚焦和跳转?

如图,在Vue中v-for生成input,当点击新增按钮时,光标自动聚焦到最新的input,窗口自动移动到合适的位置!
图片描述

阅读 3.9k
2 个回答

vue.js的官方中文教程的[自定义指令](https://cn.vuejs.org/v2/guide/custom-directive.html)部分恰巧就和你的情形很相似,当然本质上就是直接调用focus获取焦点。至于滚动窗口,用window.scrollTo就好啦(。•̀ᴗ-)✧

具体scroll到哪,计算思路是获取以下两个关键的值:

  1. 屏幕大小;
  2. 你要显示的元素的位置

如果你只想要保证纵向的位置合适,那只用获取纵向上的值就行了。其中第二条好像比较难获取,给你查了一下,自己参看吧!

  1. https://www.cnblogs.com/wujin...
  2. https://www.cnblogs.com/wujin...

不过我刚刚突然想到,你可以给你要活动到中央的元素加个name然后window.location.href += '#name'类似这样的即可。关键词:锚点。如果滚动的位置仍然不太合适——一般是会偏上——这时候你可以同时获取当前窗口滚动高度,并使用window.scrollTo把滚动位置向下再滚动一点(例如滚动半个屏幕的高度)。

取得最后一个的dom元素,调用聚焦函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题