收藏
回答

scroll-view中scroll-into-view的问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug scroll-view 工具 2.7.7 2.7.7

我现在开发一个效果,点击提交按钮,自动滚动到结果位置;因为都是当前页面,所以想到用锚点。

当前页面的结果是隐藏的,因为需要通过提交的信息做判断展示。我在一个正常的页面使用scroll-view可以实现锚点,但是放到我这个项目没有反应,但是事件是打印出来id名,就是没有滚动。

wxml结构:


js:

回答关注问题邀请回答
收藏

2 个回答

  • 刘曦
    刘曦
    2019-08-05

    我不知道是不是因为from表单,这个是from表单调取的函数。

    submitData: function (e) {
        const that = this;
        that.setData({
          isResult: false
        });
        //数据校验
        const checkResult = this.checkData();
        if (checkResult != '') {
          wx.showToast({
            title: checkResult,
            icon: 'none',
            duration: 3000
          });
          return;
        }
        var sexParterNum = '';
        var firstSex = '';
        var deliveryNum = '';
        //获取年龄、性生活
        var age = that.data.age[that.data.ageIndex];
        var isSexLife = that.data.sexLife[that.data.sexLifeIndex].key;
        //有性生活
        if (isSexLife == 1) {
          //获取性伴侣数、初次性生活、分娩次数
          sexParterNum = that.data.sexPartnerNum[that.data.sexPartnerIndex].key;
          firstSex = that.data.sexFirst[that.data.sexFirstIndex].key;
          deliveryNum = that.data.deliveryNum[that.data.deliveryIndex].key;
        }
        var evalUser = {};
        evalUser.id = this.data.evalUserId;
        evalUser.age = age;
        evalUser.isSexLife = isSexLife;
        evalUser.sexParterNum = sexParterNum;
        evalUser.firstSex = firstSex;
        evalUser.deliveryNum = deliveryNum;
        evalUser.evalType = this.data.evalType;
        console.log("evalUser", evalUser);
        wx.showLoading({
          title: '',
          mask: true,
        });
        utils.request({
          url: "/evaluate/preSolution/test",
          method: 'POST',
          data: evalUser,
          success: function (res) {
            wx.hideLoading();
            console.log("res111", res);
            if (res.data.state == 'ok') {
              that.setData({
                riskReading: res.data.resultMap.riskReading,
                result_icon: res.data.resultMap.riskName,
                evalUserId: res.data.resultMap.evalUserId,
                solutionId: res.data.resultMap.solutionId,
                isResult: true
              });
              that.results;
            } else {
              wx.showToast({
                title: res.data.msg,
                icon: 'none',
                duration: 3000
              });
            }
          },
          fail: function (res) {
            wx.hideLoading();
          }
        });
      },


    2019-08-05
    有用
    回复 10
    • 卢霄霄
      卢霄霄
      2019-08-05

      that.setData({

                  riskReading: res.data.resultMap.riskReading,

                  result_icon: res.data.resultMap.riskName,

                  evalUserId: res.data.resultMap.evalUserId,

                  solutionId: res.data.resultMap.solutionId,

                  isResult:true

      }, that.results);

      这么写


      2019-08-05
      回复
    • 刘曦
      刘曦
      2019-08-05
      你好!这么写了,没有效果;另外这么写什么意思我不懂,哈哈
      2019-08-05
      回复
    • 卢霄霄
      卢霄霄
      2019-08-05回复刘曦

      就是在setData渲染完后,调用 that.results方法。。方便做个代码片段吗


      https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2019-08-05
      回复
    • 刘曦
      刘曦
      2019-08-05
      https://developers.weixin.qq.com/s/hAyR3om27WaD你看一下
      2019-08-05
      回复
    • 卢霄霄
      卢霄霄
      2019-08-05回复刘曦
      跑不起来啊。。有依赖不存在
      2019-08-05
      回复
    查看更多(5)
  • 卢霄霄
    卢霄霄
    2019-08-05

    要列表渲染好了之后 再滚

    方便的话 可以来个代码片段吗

    2019-08-05
    有用
    回复 2
    • blue双月鸟
      blue双月鸟
      2021-08-12
      怎么判断列表渲染完毕呢
      2021-08-12
      回复
    • 卢霄霄
      卢霄霄
      2021-08-12回复blue双月鸟
      初始就在data里的话,就是 onReady。通过 setData设置的话,就在 setData的回调里
      2021-08-12
      回复
登录 后发表内容