vue怎么下拉菜单碰到浏览器下边界的时候重新定位?

自己写了一个vue下拉框组件,现在是通过滚动条位置scrollTop、屏幕高度clientHeight,减去组件离顶部的距离来实现定位的,通过监听页面滚动scrollresize来重置高度,这种方式来实现的。

感觉这种方式有些复杂,而且不是很顺畅,有时还会计算错误,求问有没有更好的方式?

例子就像element-ui下拉框那样的,随着位置变化会自动重新定位的

阅读 2.8k
2 个回答

可以不用监听scrollresize事件
在每次点击下来展示的时候的时候再获取当前的组件的 getBoundingClientRect()值去判断就行

不用去判断滚动条位置,判断下拉菜单距离屏幕顶部底部的距离就行了。然后,性能上可以节个流

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