LCUI 1.0 Beta 2 开发日志

发表于2018年02月21日

2018-03-07

部件宽度为 auto 时计算总有问题,需要完善一下计算流程:

  1. 开始
    1. 遍历子部件
    2. 判断子部件宽度是否为静态宽度?
      1. 是,直接取该部件的尺寸
      2. 否,判断它的宽度是否依赖父级元素?
        1. 是,调用它的 autosize() 方法获取合适尺寸
          • 计算完后添加“尺寸调整”任务,让它在本次父部件尺寸更新完后更新自身尺寸
          • 在更新自身尺寸时不再触发父部件的重新布局,避免陷入死循环
        2. 否,直接取该部件的尺寸
    3. 判断子部件右下角点坐标是否大于当前记录的坐标
      1. 是,记录该坐标
      2. 否,忽略
  2. 将记录的坐标 XY 值作为部件的宽高值
  3. 结束

2018-02-21

当父元素和子元素都有滚动条时,滚动条会一起滚动,需要做些调整。浏览器的做法是:如果子元素的滚动条已经滚动到边界位置,则不处理此次触控拖动和鼠标滚轮事件,让父元素的滚动条处理。在 LCUI 中要实现这种效果的话,鼠标滚动事件很好处理,直接阻止事件冒泡即可;但触控事件会复杂点,在收到 touchmove 事件时,如果滑块已经到边界位置且无法移动,则取消此次触控事件处理,后续的 touchmove 事件会直接冒泡到父级滚动条,直到下次 touchdown 事件时再重新判断是否需要处理。

对此文章有疑问?你可以点击此链接反馈你的问题