动态创建的元素怎么做动画
2016-05-28 11:54
337 查看
要做动画,一般都是要获取元素的一些基本属性,比如宽,高,颜色等
但是对于动态创建的元素,是不能获取这些属性的
只有插入到dom中,经过渲染才能获取这些属性
但是一旦插入到dom当中,先获取在改变就会有跳动的效果
为了避免这种情况,有两种解决方案
一种是将元素设置绝对定位,获取之后然后在放到正确位置,这种情况一般用在弹出框的居中显示中
一种是将元素设置成visibility:hidden;overflow:hidden;height:0; 然后获取scorllHeight,scrollWidth
这样既可以准确获取,而且也不会有跳动,因为连续的dom样式变动,人的眼睛是感觉不出来的,但是如果先改变一些,再在setTimeout里面再改变一些,这种变动势必会产生跳动
总结:想办法在用户视线外,或者将元素隐藏起来来获取dom的属性,然后一次性改变dom产生动画,这时的动画就是连续的,流畅的
但是对于动态创建的元素,是不能获取这些属性的
只有插入到dom中,经过渲染才能获取这些属性
但是一旦插入到dom当中,先获取在改变就会有跳动的效果
为了避免这种情况,有两种解决方案
一种是将元素设置绝对定位,获取之后然后在放到正确位置,这种情况一般用在弹出框的居中显示中
一种是将元素设置成visibility:hidden;overflow:hidden;height:0; 然后获取scorllHeight,scrollWidth
这样既可以准确获取,而且也不会有跳动,因为连续的dom样式变动,人的眼睛是感觉不出来的,但是如果先改变一些,再在setTimeout里面再改变一些,这种变动势必会产生跳动
总结:想办法在用户视线外,或者将元素隐藏起来来获取dom的属性,然后一次性改变dom产生动画,这时的动画就是连续的,流畅的
相关文章推荐
- 设计模式学习笔记--抽象工厂模式
- hdu 1548 简单的bfs
- OpenCV下三对点计算仿射变换实现图像的水平镜像(翻转)的详细说明和源程序
- HDU 1016 Prime Ring Problem (DFS)
- Handler与Message
- redis消息发送与订阅
- gulp的使用
- tcpdump permission denied问题解决
- 框架模式 MVC 在Android中的使用
- 初学 android databinding
- 编程错误集
- Android开发技术问题收集
- HDU 1754 I Hate It 伸展树
- 深入浅出SQL Server中的死锁
- php-fpm配置文件
- git的使用和Eclipse配置和使用Egit
- Hadoop Serialize (一)
- POJ 2299 Ultra-QuickSort (树状数组 + 离散化)
- linux 下启动关闭mysql服务的命令 以及 mysql中文乱码
- 写算法程序时非常容易犯的思维定势错误积累