网页在Safari快速滚动和回弹的原理:-webkit-overflow-scrolling:touch;的实现
来源:互联网 发布:单片机c51简易数字钟 编辑:程序博客网 时间:2024/05/21 20:24
现在很多的移动的HTML5网页内都有快速滚动和回弹的效果,看上去和原生应用的效率都有得一拼。
要实现这个效果很简单,只需要加一行CSS代码即可:
可用以下网页测试: 可以用手指滑动中间的蓝色区域,会发现回弹效果以及滚动得很快:
(点击图片查看大图)
如果把-webkit溢出滚动那行注释掉,就会发现滚动得很慢。
实际上,Safari浏览器真的用了原生控件来实现,对于有-webkit溢出滚动的网页,会创建一个的UIScrollView,提供子层给渲染模块使用创建时的堆栈如下:
实际创建的是UIWebOverflowScrollView,它继承自UIScrollView的,声明为: 其还有一个子查看作为内容查看,是给WebCore的真正用作渲染型内容溢出的层的容器。UIWebOverflowContentView的声明为:
再往底层跟,都是CALayer的的操作。以上两个类都是UIKit的层的实现,需要的WebCore有硬件加速的支持才有实际意义,相关的逻辑被包含在
ACCELERATED_COMPOSITING
这个宏里。从SVN日志看,在WebKit 108400版本左右才支持,所以iOS Safari应该是需要5.0.Android只在4.0以上支持。
从前端开发的角度讲,只需要知道CSS的属性-webkit-溢出滚动是真的创建了带有硬件加速的系统级控件,所以效率很高。但是这相对是耗更多内存的,最好在产生了非常大面积的溢出时才应用。
转载请注明出处:http : //blog.csdn.net/hursing
阅读全文
0 0
- 网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现
- 网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现
- 网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现
- 网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现
- 网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现
- 网页在Safari快速滚动和回弹的原理:-webkit-overflow-scrolling:touch;的实现
- -webkit-overflow-scrolling:touch;在本身没有滚动,动态加入内容撑大后不滚动的bug
- CSS设置网页在Safari快速滚动和温柔的回弹
- -webkit-overflow-scrolling: touch
- 关于 -webkit-overflow-scrolling:touch 的小bug
- ios下使用-webkit-overflow-scrolling:touch带来的bug
- css:-webkit-overflow-scrolling: touch;
- 视差滚动(Parallax Scrolling)效果的原理和实现
- 视差滚动(Parallax Scrolling)效果的原理和实现
- 视差滚动(Parallax Scrolling)效果的原理和实现
- 视差滚动(Parallax Scrolling)效果的原理和实现(转)
- -webkit-overflow-scrolling 学习
- -webkit-overflow-scrolling
- 线程中的条件变量:pthread_cond_wait()用法分析
- 除了清空购物车,阿里年会的技术也超霸气!
- NOIP2014普及组--螺旋矩阵(模拟)
- 8皇后
- HDU 6197 LIS
- 网页在Safari快速滚动和回弹的原理:-webkit-overflow-scrolling:touch;的实现
- int main(int argc,char *argv[])函数介绍
- 数据脱敏
- Servlet笔记——(1.4.2)GET请求协议
- JavaScript深入之执行上下文栈
- activeMQ指南针_发布activeMQ的可视化运行维护工具:activeMQ_Spanner
- 面试题58. 二叉树的下一个节点
- python中的zip函数
- 关于windows程序设计的一些问题