zoukankan      html  css  js  c++  java
  • 体验优秀的触屏网页开发加速滑动与回弹

    一个接近naturalapp体验的加速滑动与回弹css3属性

    前几天,楼主发表了一篇关于手机网页开发软键盘与fixed博文叫做:webapp前端开发软键盘与position:fixed为我们带来的不便

    自以为总结的挺好挺有范,但是很不幸,通过学习交流很快就有了更好更完美的方案,而且还是来自safari原生控件实现,代码很简单

    overflow-y:auto;-webkit-overflow-scrolling:touch;

    效率很高的有着硬件加速的系统级控件,简约而不简单

    代码很少很简单,但我们可以替代掉之前为解决ios下软键盘与fixed问题而使用的webapp前端开发框架iscroll

    iscroll框架带来的消耗且不论,它的确是解决了我们的问题,但是同时给我们带来了不少后遗症与代码处理上的麻烦

    -webkit-overflow-scrolling来自safari原生控件的实现,工作原理是:在有这个属性的容器上,系统会创建了一个uiscrollview,应用于该元素并将之作为渲染对象,从而为我们实现体验流畅的触屏滑动

    在ios上的表现结果令人十分满意,并且网页滑动和区域滑动的冲突同样解决的很好

    接前文思路,位置被固定了的悬挂与滚动元素分离代码展现

    <!doctype html>
    <html lang="zh-cn">
    <head>
    <title>-webkit-overflow-scrolling</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
    
    <style>
    html,body{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    body{position:relative;font-size:16px;}
    *{padding:0;margin:0;}
    header,footer,section{background:#eee;position:absolute;top:0;left:0;right:0;line-height:50px;text-align:center;}
    footer{top:auto;bottom:0;}
    section{padding:15px 0;overflow-y:auto;background:#fff;top:50px;bottom:50px;-webkit-overflow-scrolling:touch;}
    </style>
    </head>
    <body>
    
    <header>头部</header>
    <section>正文</section>
    <footer>底部</footer>
    
    </body>
    </html>

    有人可能会问为什么html和body也要加,这两位是否有必要给这个属性

    场景展示:

    html和body都加

    html和body都不加或只有一个加

    前者比后者触发网页滑动的几率要小很多,自己试试吧

    -webkit-overflow-scrolling的缺点

    它当然也有自己缺点,既然创建了系统级控件就势必会有内存消耗,但是相比我们使用一套框架它的性价比不言而喻

    在android下的表现也不令人满意,所以我们只是用它来替代之前为优化ios体验而准备的开发框架iscroll的工作

    楼主对于-webkit-overflow-scrolling认知的时间还很短,博客内的观点未必足够全面,欢迎各位帮助补充完善
  • 相关阅读:
    java调用打印机方式二
    java调用系统打印机
    Centos7开放端口(永久)
    java毫秒级别定时器
    java计算接口调用时间
    java实现当前时间往前推N小时
    java注解日志记录到数据库
    Java后端HttpClient Post提交文件流 及服务端接收文件流
    springboot整合websocket
    注解@Slf4j使用
  • 原文地址:https://www.cnblogs.com/johnl/p/4204004.html
Copyright © 2011-2022 走看看