2022-01-21 工作记录--Wechat applet-scroll-view实现横向滚动

scroll-view实现横向滚动

一、效果图

在这里插入图片描述

二、官方文档

https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html

三、解决小坑

我们想实现的是横向滚动So肯定会配置scroll-xtrue

在这里插入图片描述

But~出现的却是下面效果【wow 它怎么还是纵向显示滴呢】

在这里插入图片描述
在这里插入图片描述

这时,爱动脑筋滴小萝卜儿肯定已经有了想法了,给<scroll-view></scroll-view>设置样式style="display: flex;"不就好咯,那让我们来试试吧~

【注意:给父盒子加了display: flex;后,一定要记得给其子盒子们加上一个CSS属性: flex-shrink: 0;

在这里插入图片描述

wow~没变化也,好神奇,这时好奇宝宝👶使劲挠着它滴小脑瓜

肿么办呢?🤣

只有回去认真看官方文档

这时 观察力很好滴小萝卜儿肯定发现了一个熠熠生辉滴配置属性:enable-flex

在这里插入图片描述

是它,就是它,那就加上去试试吧

在这里插入图片描述
当当当~可以达到需要的效果哟😊

【注意】 enable-flex="true" 必须和 style="display: flex;"搭配使用,缺一个都会没效果滴哟

But~我们发现垂直方向竟然也有一定的高度,并且就是上面这些item的高度,使得页面即使没有内容了,仍可一直往下拉(如下图),这时好奇宝宝👶好奇不起来咯,它们焦虑起来咯😢

在这里插入图片描述

那该怎么办呢?怎么办呢?怎么办呢?憨憨再次挠头~🤔

在这里插入图片描述

经过诸多尝试,发现一个光彩照人滴配置属性:scroll-y

在这里插入图片描述

既然是垂直方向上有高度,那我们就把scroll-y设置成false(让其不允许纵向滚动)试试看呢~

在这里插入图片描述

当当当~大功告成咯😊

四、补充:假如想实现滚动到某个位置,可以使用下面的属性

在这里插入图片描述

比如:👇🏻

在这里插入图片描述

	/**
   * 页面的初始数据
   */
  data: {
  	res_sta: '', // res的sta
    attendance_detail: '',
    item_content: [], // 课程信息
    
    leftNumber: '', // 需向左平移的数据

    normalLength: 0, // 全勤天数
  },
  
  // 活动打卡详情
  getCardDetail(id) {
    var params = {
      id: id,
    }
    api('/activity-activityDetails', 'get', params, '', true)
      .then(res => {
        this.setData({
          leftNumber: 0 // 让其向左平移的数据
        })
        this.setData({ // 接收到从后台传过来的数据
          res_sta: res.sta,
          attendance_detail: res.data,
          item_content: res.data.data,
        },()=>{ // this.setData的回调函数
          this.reGetData(res.data.data);
        })
      })
      .catch(err => {

      })
  },
  
  // 计算需向左平移的数据
  reGetData(item_data) {
    var normalArr = []; // 为全勤的课时数据

    // 获取到需向左平移的数据leftNumber
    for (let i = 0; i < item_data.length; i++) {
      var v = item_data;
      if (!v[i].type) { // 因为当数组遍历里的数据里的type没有时,这条数据则表示未上课,就要让它放在可视范围的第四个位置
        // console.log(i) // 获取到未上课的索引值
        var item_w = 136.38; // 自己在css里写死的宽度
        this.setData({
          leftNumber: item_w * (i - 4) // 让其向左向左平移的数据
        })
        break;
      }

      if(v[i].type == 1) {
        normalArr.push(v[i]);
      }
    }

    this.setData({
      normalLength: normalArr.length // 全勤的天数
    })

  },

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呀小萝卜儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值