Skip to content

1216 今日总结

今日工作

问题

  • 问题1:iframe click 事件无效#TODO

原因

  • 问题1:iframe 不支持指针事件;
  • 其次:iframe 加载的是跨域资源,无法操作跨域资源;

解决方式

参考资料:

iframe的坑-合集:

google 搜索关键字 iframe 坑

优化

  • 实现对 多图模式预览列表优化
    • 图片容器长度小于 modal 时,不出现左右切换,图片仅仅居中展示;
    • 图片容器长度大于 modal 时,出现左右切换;
  • 目的:
    • 避免在不需要切换图片列表的时候,出现了切换按钮误导用户;
    • 提升用户体验;

巧妙实现

  • clickAway 实现:
    • 原方案:参考 useClickAway/ahooks.js
    • 无法实现原因:要求不能使用蒙层,点击弹框以外的元素关闭弹框;因为弹框放到了 body 下,鼠标点中的其他区域无法操作 clickedElement.contains(modalElement)
    • 新方案:react v.17.x 事件系统挂在 container 上,modal 点击蒙层关闭的问题就很好解决了

新方案:

  • modal 挂载的时候注入 全局的 document.click 事件,触发操作是关闭弹框;
  • modal 顶层元素监听 onclick 事件,e.stopPropagation();阻止冒泡;
  • 外部 DOM 操作若想要点击但是不想蒙层关闭,直接使用 e.stopPropagation() 即可;

TODOS

短期内要做的事情

Released under the MIT License.