自己写了一个vue下拉框组件,现在是通过滚动条位置scrollTop
、屏幕高度clientHeight
,减去组件离顶部的距离来实现定位的,通过监听页面滚动scroll
和resize
来重置高度,这种方式来实现的。
感觉这种方式有些复杂,而且不是很顺畅,有时还会计算错误,求问有没有更好的方式?
例子就像element-ui下拉框那样的,随着位置变化会自动重新定位的
自己写了一个vue下拉框组件,现在是通过滚动条位置scrollTop
、屏幕高度clientHeight
,减去组件离顶部的距离来实现定位的,通过监听页面滚动scroll
和resize
来重置高度,这种方式来实现的。
感觉这种方式有些复杂,而且不是很顺畅,有时还会计算错误,求问有没有更好的方式?
例子就像element-ui下拉框那样的,随着位置变化会自动重新定位的
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
可以不用监听
scroll
和resize
事件在每次点击下来展示的时候的时候再获取当前的组件的
getBoundingClientRect()
值去判断就行