https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView#Browser_compatibility
scroll() {
//原生方案
this.scrollIntoView(false) //滚动生硬
this.scrollIntoView({
behavior: "smooth", block: "center"})
//此方案滚动效果很好,但在低端安卓(4.x)上有兼容性问题,options不被识别,只识别true/false;
}
_scroll() {
//最终改用如下方案,效果也很好(方案A):
let base = $('html,body'), //获取基准窗口
bH = base.height(), //窗口高度
top = this.getBoundingClientRect().top, //当前元素相对视口的top
elH = $(this).height(), //当前元素高度
delta = top - (bH - elH) / 2
// 本次滚动的相对距离,要把元素显示在视口正中间,
//(bH-elH)/2是正好垂直居中显示时,相对视口的top值;
//滚动时 base.scrollTop() + delta 即可算出本地滚动的相对值
if(delta) {
base.animate({
scrollTop: `${
base.scrollTop(</