当前位置: 首页 > news >正文

CSS3 动画效果带来的bug

css3 动画效果比如transition:all 2s linear;这种用来计算及时的物体坐标的话会带来一定的问题

比如把一个DIV从A点移动到B点。JS为DIV.style.left=B;

但是当我们使用上面的transition属性后,A点移动到B点是2秒内完成的,当执行JS代码时候,DIV还没到应该的位置,那么,在Div.style.left=B; console.log(Div.offsetLeft);

这样console出来的是起点坐标而不是终点坐标。

即使你让其JS线程主动挂起使用如setTimeout,0这样的还是不行,估计CSS3动画没有使用GUI线程,只能使用setTimeout 2000后读取offsetLeft才能得到正确的值。

 

那么,在像响应式布局使用CSS3动画效果时,当窗口大小改变,新的元素被添加的时候也会引起元素错位等问题。因为你在for循环全部的元素的时候,引发的重排版的时候,下一行元素的定位依赖于上

一行元素的定位,当上一行元素还在执行动画效果,还没到应该到的位置的时候,下一行元素就已经开始计算了,这时候元素的位置计算就是错误的。必须要等上一个元素的完全到位了才能得到其正确的

位置。

解决方法:把应该的定位储存到这个元素的属性中而不是直接设置为其的X,Y位置,因为属性的话不存在动画效果,执行时间也可以忽略不计。更不存在线程的问题,我们把所有的元素的定位值设置到这

个元素的属性中。下一个元素判断位置直接读取上一行元素中的属性值,即使上一行的元素还在跑往应该的位置上也不会出现位置重复了。

 

 

转载于:https://www.cnblogs.com/strangerqt/p/3789851.html

相关文章:

  • PI Square中文论坛: PI SDK 开发中级篇| PI Square
  • 解密回文——栈
  • Maven Docker部署
  • Django(六)模型(model)系统 -- 常用查询语法及进阶
  • Yii php 环境配置on ubuntu 12.04
  • 带动画的登录页面
  • JAVA中equal()和==的区别
  • 区块链软件公司:区块链技术能带来什么
  • Android:让WebView支持input type=”file”…元素
  • P3235 [HNOI2014]江南乐
  • ZYNQ的数据处理能力
  • Keras之父:比特币网络危机重重
  • 提高sql2005中带freetexttable和rank的全文检索的速度
  • js中if else switch 条件判断的替代方法
  • 菜根谭#142
  • (三)从jvm层面了解线程的启动和停止
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • CentOS 7 修改主机名
  • cookie和session
  • es6(二):字符串的扩展
  • ES学习笔记(12)--Symbol
  • extract-text-webpack-plugin用法
  • jquery cookie
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • PHP变量
  • socket.io+express实现聊天室的思考(三)
  • SpringCloud集成分布式事务LCN (一)
  • 对JS继承的一点思考
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 小程序开发之路(一)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 用Python写一份独特的元宵节祝福
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (1)bark-ml
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (done) 两个矩阵 “相似” 是什么意思?
  • (rabbitmq的高级特性)消息可靠性
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (二)springcloud实战之config配置中心
  • (六)vue-router+UI组件库
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET DataGridView数据绑定说明
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net(C#)中String.Format如何使用
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET中GET与SET的用法
  • /proc/stat文件详解(翻译)
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [AutoSar NVM] 存储架构