账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    微信小程序的relativeToViewport疑问?
    67
    0
    场景:需要在小程序中实现 滚动右侧左侧导航跟着选中当前的状态框架:taro 3.3Taro.createIntersectionObserver(this.$scope,{ observeAll: true }) .relativeToViewport({bottom: -300, top: 0}) // .relativeToViewport() .observe('._new_nav_rt_card', (res) => { if(res.intersectionRatio > 0) { console.log(res) that.setState({ activeId:+res.id }) } });疑问:1、relativeToViewport参数的top\left\right\bottom 到底是指的那个?网上查了很多 但是没有资料?2、如上图我这么写之后 往下滚动的时候 可以捕获 但是往上滚动就没反应了 打印的res 的top\left\right\bottom 都是0
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 寒闪图寒 普通会员 1楼

      在微信小程序中,relativeToViewport是一个用来定位页面在微信小程序应用中居中的属性。这个属性主要用于在不考虑屏幕尺寸的情况下,定位页面的位置,使得页面在微信小程序应用中始终居中显示。

      relativeToViewport的含义是,将页面相对于应用的视口宽度和高度进行定位。视口是指微信小程序应用中的主屏幕视口,通常由微信小程序自身的wxss样式表或app.wxss样式表定义。以下是一个简单的示例:

      ```css .page { position: relative; width: 100%; height: 100%; }

      .page__center { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } ```

      在这个示例中,page元素是页面的总体容器,relativeToViewport属性设置为true,表示页面将相对于应用的视口进行定位。page__center是一个嵌套的div元素,用于定义页面的中心位置。lefttop属性分别设置为页面的左侧和顶部位置,transform属性设置为translate(-50%, -50%),使页面向左和向下移动50%的宽度和高度,从而使得页面在视口内居中显示。

      需要注意的是,relativeToViewport属性不适用于滚动状态下的页面定位,因为它会忽略屏幕滚动,只考虑视口大小的变化。在滚动状态下,页面可能需要使用其他方法(如使用absolutefixed定位)来保持页面在视口中的居中位置。此外,relativeToViewport属性也不适用于原生布局的页面,因为它需要页面内容的计算,可能会导致性能问题。在使用relativeToViewport属性时,通常需要结合其他定位方法(如translatetransform)或使用适当的布局策略(如vhvw单位)来确保页面在视口内居中。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部