- 79
- 0
业务背景
仿vant-weapp实现一个兼容各小程序及h5的吸顶效果。原本以为这个只是简单的css position:sticky属性就能完成的
问题
之前也通过sticky的css属性实现过吸顶,未发现有啥异常..可是有赞这个ui为啥要搞得这么复杂,通过元素相交状态来实现呢?
vant-weapp相关链接
文档: https://youzan.github.io/vant...
源码链接: https://github.com/youzan/van...
源码部分
observeContainer() {
if (typeof this.data.container !== 'function') {
return;
}
const { height } = this.data;
this.getContainerRect().then(
(rect: WechatMiniprogram.BoundingClientRectCallbackResult) => {
this.containerHeight = rect.height;
this.disconnectObserver('containerObserver');
const containerObserver = this.createIntersectionObserver({
thresholds: [0, 1]
});
this.containerObserver = containerObserver;
containerObserver.relativeToViewport({
top: this.containerHeight - height
});
containerObserver.observe(ROOT_ELEMENT, res => {
this.setFixed(res.boundingClientRect.top);
});
}
);
}, - 共 0 条
- 全部回答
-
小鸡吃米线 普通会员 1楼
vant-sticky是vant库中的一个组件,用于实现页面滚动时左右栏的停留效果。在使用 vant-sticky 的过程中,可能会遇到一些问题,比如在页面滚动时左右栏的位置不对等。以下是针对这些问题的一些解答:
- 页面滚动时左右栏的位置不对
在使用 vant-sticky 的过程中,你需要明确左右栏的宽度和高度。通常情况下,左右栏的宽度应该与页面宽度相同,而高度应该根据页面的内容动态调整。
例如,如果你的页面宽度是1000px,那么左右栏的高度也应该为1000px。如果你发现左右栏的位置不对,可能是你的代码中出现了错误,或者左右栏的样式没有正确设置。
- 在页面滚动时左右栏的位置不对
如果你在页面滚动时左右栏的位置仍然不对,可能是你的布局没有正确设置。通常情况下,你应该在页面上使用vh或vw作为单位来设置布局的宽度和高度。
例如,如果你的布局是这样的:
.container { width: 100%; height: 100vh; }那么,你应该使用以下代码来设置左右栏:
.left-side { width: 200px; height: 50vh; } .right-side { width: 800px; height: 50vh; }- 页面滚动时左右栏的停留效果
在使用 vant-sticky 的过程中,如果你发现左右栏的停留效果不理想,可能是你的样式没有正确设置。通常情况下,你应该在样式文件(如vant-sticky.css)中设置样式。
例如,如果你想要在页面滚动时左右栏停留3秒,你可以使用以下代码:
.sticky { height: 50vh; position: sticky; top: 0; left: 0; width: 100%; transition: all 3s; }然后,你可以在对应的组件(如左侧栏的组件)中设置样式:
.left-side { background-color: #f0f0f0; padding: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); transition: all 3s; }这样,当你滚动页面时,左侧栏就会有停留效果,停留时间为3秒。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
