小程序采用Scroll-view实现瞄点,不兼容input标签解决方法

小程序采用Scroll-view实现瞄点,不兼容input标签解决方法

1、原来采用的方法
在这里插入图片描述
在这里插入图片描述

上述为了测试scroll-view与input在安卓端不兼容,实验测试确实是不兼容。
2、采用scroll-view实现瞄点的方法

<scroll-view style="height:100%" scroll-into-view="{{toView}}" scroll-y="true" scroll-with-animation="{{true}}">
<view id="test1">111111</view>
<view id="test2">111111</view>
<view id="test3">111111</view>
</scroll-view>
that.setData({
   toView: jump
});
这里jump为对应项的id值,这里可设置为test1 test2..
必须保证scroll-view高度存在;实现瞄点页面内容必须满足大于整屏

3、这里说一下如何解决页面实现瞄点并且页面需要使用到input标签。

if (jump) {
      //1:返回一个残血对象的实例
      const query = wx.createSelectorQuery();
      //【point1】指的是要跳转的id选择器元素
      //2:在当前页面下查询指定id选择器的节点,获取节点信息
      query.select('#' + jump).boundingClientRect();
      //3:可用于获取显示区域的尺寸、滚动位置等信息,然后添加截图的滚动位置查询请求
      query.selectViewport().scrollOffset();
      //4:开始执行
      query.exec((res) => {
        //res[0]是步骤2中的数据,res[1]是步骤3中的数据
        if (res[0] && res[1]) {
          //5:将页面滚动到目标位置
          wx.pageScrollTo({
            //6:计算滚动到目标的位置
            scrollTop: res[0].top + res[1].scrollTop,
            duration: 300,
          })
        }
      });
    }

采用这种方法解决,不是用scroll-view实现瞄点,jump为动态的id值。测试Android与iphone均可实现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值