记录H5 C3的一些奇淫技巧

关于flex布局

  1. 项目经常遇到 上下固定中间自适应剩余高度的场景 如果中间的盒子用了 flex:1; 会遇到 中间盒子由于没有设置固定高而被子元素撑大的情况, 然后overflow: auto; 也失效了
  • 解决:
flex: 1; height: 0;
  1. 还有一个场景是,上下固定,中间自适应,中间超出部分自滚动。如果中间的内容不够撑开全部剩余的高度,那么就默认用内容的高,如果中间内容的高度超出剩余高度,就用最大剩余的高度并且超出自滚动;
flex: 1;
max-height: fit-content;
overflow: auto;

拖拽 draggable='true'

dragenter

  • 如果目标元素里面有其他的元素 dragenter 会被多次触发 例如目标元素是下面的层级关系
<div>
    <span>首页</span>
</div>
  • 当拖拽元素进入这个div的时候,dragenterdragleave分别触发了两次
  • 原因就是因为div里面有个span

进入目标元素,想让其只执行一次dragenter dragleave里面的内容怎么办?解决如下

let enterTimes = 0
dragenter() {
    enterTimes++
  // 可用enterTimes和e.target.tagName共同判断去做一些事
}
dragleave() {
    enterTimes--
    if (enterTimes <= 0) {
        // do something
    }
}

注意要在 drop dragend 里面重置 enterTimes 为 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,324评论 19 139
  • 一、HTML5 1.1 认识HTML5 HTML5并不仅仅只是作为HTML标记语言的一个最新版本,更重要的是它制定...
    福尔摩鸡阅读 16,246评论 14 51
  • 原文 https://www.kancloud.cn/dennis/tgjavascript/241852 一、节...
    LuckyS007阅读 4,274评论 0 0
  • API集锦,需要用时查阅用。 一、节点1.1 节点属性 Node.nodeName //返回节点名称,只读Node...
    littleyu阅读 7,512评论 0 8
  • 请点击蓝字收听朗读音频 (一) 雪中我看见了一只红马 在飞扬挺胸,向天长啸 本来想去把它抓了带回 不留神,让它给跑...
    云中飘舞阅读 2,144评论 5 18