问题描述

屏幕上有若干张互相重叠的卡片,用户每点击一张卡片,就要把这张卡片的移到最上面,也就是把它的zIndex置为最大值。应该如何操作每个卡片的zIndex才能实现?

实现方案一

定义一个全局变量globalZIndex
一开始zIndex都是0,每点击一次,被点击的卡片:zIndex=++globalZIndex,这样做的坏处是总有一天zIndex会超出int范围。
但是这种方法并非不可救药,当globalZIndex达到int最大值时,执行对全部元素的排序操作,给各个元素的zIndex重新赋值为0~N之间的数字,同时将globalZIndex置为N。
这样做时空复杂度都很低,平时操作时特别快(时间复杂度O(1)),但达到int最大值之后就需要一次类似“磁盘碎片整理”的操作需要对卡片进行排序(时间复杂度O(Nlg(N)))。

实现方案二

用一个数组a记录各个卡片的zIndex,a[i]表示第i张卡片的zIndex。
点击卡片时,在数组中找到对应卡片,将后面的元素往前移动一格同时更改它的zIndex。
这样做的好处是始终将zIndex控制在0~N。每次操作复杂度微O(N)

转载于:https://www.cnblogs.com/weiyinfu/p/8721632.html

更新卡片的zIndex相关推荐

  1. 动态卡片:富媒体内容井喷式增长下,新一代移动端动态研发的模式

    简介:「蚂蚁动态卡片」新品发布会全程回顾 在 iOS 和 Android 系统近期推送的更迭版本中,系统环境已经逐渐发展出了将部分内容和服务前置化展示的趋势. 同时,伴随着富媒体内容井喷式增长以及内容 ...

  2. HarmonyOS之深入解析服务卡片的使用

    一.概述 ① 基本概念 服务卡片(以下简称"卡片")是 FA 的一种界面展示形式,将 FA 的重要信息或操作前置到卡片,以达到服务直达,减少体验层级的目的. 卡片常用于嵌入到其他应 ...

  3. 【华为云技术分享】当我们在谈论卡片时,我们到底在谈论什么?

    [摘要] 卡片可能是一种可视方式.一种入口方式,也可能是一种集成方式.对于不同形式有不同的技术和业务复杂度,不可一概而论.卡片和微前端的结合,会将服务化更好的延伸到前端方向,解决服务化最后一公里的问题 ...

  4. 鸿蒙卡片-物联网DTU污水液位计卡片

    还没写完呢 假如中国空间站用上了鸿蒙系统 假如中国空间站用上了鸿蒙系统https://www.bilibili.com/video/BV1Sf4y187CM 哔哩哔哩弹幕姬鸿蒙版https://www ...

  5. HarmonyOS 实战——服务卡片初探索

    在刚发布不久的HarmonyOS 2版本的新系统中,[服务卡片]成为一大亮点: 全新的HarmonyOS桌面简洁有序,上滑App生成服务卡片,在桌面即可呈现更丰富的信息. 卡片内容实时更新,只需一瞥即 ...

  6. 鸿蒙OS原子化服务卡片原理和架构分析

    引言 2021年6月2日晚间,华为在HarmonyOS 2系统及全场景新品发布会上正式推出了服务卡片,颠覆了人们对APP信息展示的认知,引起了行业内的极大关注,本文是对HarmonyOS服务卡片的原理 ...

  7. 在HarmonyOS中实现基于JS卡片的音乐播放器

    /   今日科技快讯   / 近日,苹果首席执行官蒂姆·库克接受<时代>杂志专访,谈及他本人对领导力.企业价值和新技术的看法.库克表示,苹果不仅要引领创新,还要努力让世界变得更安全更公平, ...

  8. 企业微信消息推送卡片按钮互动的使用

    企业微信回调推送消息互动模板 前置条件 # 企业微信后台中设置了url 按以上设置 # 回调url: http://www.baidu.com# token: xxxxx# EncodingAESKe ...

  9. HarmonyOS实战—可编辑的卡片交互

    目录 HarmonyOS实战 前言 何为卡片编辑功能? 定义编辑界面 界面的交互逻辑 界面的布局 HarmonyOS实战 前言 在前面的天气卡片设计中,我们设计了一个天气类卡片在桌面进行7日天气的直观 ...

最新文章

  1. 在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?
  2. kibana操作elasticsearch:多词条精确匹配(terms)
  3. Java学习——使用Static修饰符
  4. 使用python的openpyxl模块操作excel
  5. 微软发布Azure Pipelines,开源项目可无限制使用CI/CD
  6. React单元测试:Jest + Enzyme(二)
  7. 最近学到的「短链接」知识
  8. pku773_Happy 2006
  9. 继承/作⽤域/作⽤域链
  10. C++中string::find()函数和string::npos函数的使用
  11. 桌面图标整理工具(Fences Pro)
  12. C++实训easyx打地鼠(动画版)
  13. 这场大雨还没把我浇醒吗?
  14. Hash函数经典用法
  15. java毕业设计在线招投标系统Mybatis+系统+数据库+调试部署
  16. 【财务】FMS财务管理系统---对账平台
  17. 键盘、鼠标各键对应的ASCII码值
  18. go语言的iota是什么意思_golang 使用 iota
  19. 80老翁谈人生(168):北京大学欠老翁的情,欠老翁的债
  20. Ghost的使用方法

热门文章

  1. 2019杭电多校第一场 Operation HDU - 6579
  2. Log4net日志发布到服务器上日志无法写入
  3. MySQL数据库8(二十二)变量
  4. Django--QuerySet--基础查询
  5. Roundcube Webmail跨站脚本漏洞(CVE-2015-5381 )
  6. 第三节课-损失函数和优化
  7. MeteoInfoLab脚本示例:MODIS Sinusoidal投影HDF数据
  8. SharePoint 2013 Reporting Service 部署配置图文教程
  9. javaEE项目发布方法
  10. vs2010 c# 配置项问题