浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

分享CSS3中-webkit-overflow-scolling的运用心得

网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。
滚动条在页面布局中用得也比较多,这篇文章就和大家分享一下,我使用-webkit-overflow-scolling的心得,避免小伙伴们踩坑,有需要的可以过来看看。

我们都知道在ios的safari浏览器和app内核浏览器中,当一个h5页面内容超出屏幕高度,我们手指去滑动屏幕的时候,只要手势一离开屏幕,滚动立刻结束。这时候我们可以通过设置-webkit-overflow-scrolling=touch来使页面可以顺畅滚动,但是设置这个也会引出许多问题。

1、单独对body设置-webkit-overflow-scrolling touch是无效的,需要针对html和body同时设置才有效果,代码如下:

html,body{
    height: 100%;
    overflow: auto;
   -webkit-overflow-scrolling: touch;
}

2、父容器设置-webkit-overflow-scrolling=touch后,子容器不允许出现fixed固定的子元素,为什么这么说呢。因为当你设定-webkit-overflow-scrolling=touch后,你滑动屏幕的时候会发现fixed属性失效了,他也跟着屏幕滚动了,只有当滚动停止的时候这个元素才会在固定到页面上。显然这不是我们要的结果。

这里我的解决方法是不把-webkit-overflow-scrolling设置在body元素上,在需要滚动的地方另外增加div容器去设定,然后把需要fixed的容器都直接放在body元素内。

3、单独对div设定-webkit-overflow-scrolling属性无效,经测试后发现,我需要先对父容器div1设定为有高度的容器,然后在对超出的子容器设定-webkit-overflow-scrolling属性具体代码如下:

<style>.div-p{ width: 100%; height: 500px;/*这是测试值,具体针对项目需求设置,不要超出子容器内容高度*/overflow: hidden;/*设不设定这个值对-webkit-overflow-scrolling没有影响*/}
.div-c{ width: 100%; height: 2000px; overflow: auto;/*测试发现一定要设定这个值才起作用*/ -webkit-overflow-scrolling: touch;}</style>
<div class="div-p">
<div class="div-c">我要滚动啊,,在ios要顺畅啊</div>
</div>

经过反复测试发现如下设置也是能有效触发-webkit-overflow-scrolling属性的,具体代码如下:

<style>
.content-box{
  height: 500px;/*经过测试后发现只要设定的这个高度小于屏幕高度,-webkit-overflow-scrolling属性也能有效触发*/
  border: solid 1px green;
  overflow: auto;
  -webkit-overflow-scrolling: touch;}
</style>
<body>
<div class="content-box">哎呀我是要滚动的啊<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
有效果的哦。。。
</div>
</body>

当然,以上的版本就得在html渲染结束的时候去改变他的高度,以达到和屏幕高度一致,但是这种方式的维护性太差,后来又找到一种解决方案,具体代码如下:

<style>
.ios-scroll-father{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 10rem ;
  height: 100%;}
.ios-scroll-child{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 10rem ;
  overflow: auto;}
  -webkit-overflow-scrolling touch
</style>
<div class="ios-scroll-father">
<div class="ios-scroll-child">
我要完美解决ios的顺畅滑动问题啊,,,来试试咯。演示,请自己添加代码到超出屏幕内容哦~
</div>
</div>

这里,要提个醒,设置-webkit-overflow-scrolling属性的同时要么不要设定height,要么height+padding的高度不要超出屏幕的高度,不然你会发现等你滚动到顶部或者底部的时候会被截取掉一部分,需要你在滑动才能出现。。。这是个坑啊,本人一不小心设定高度百分百和padding后发现了这种现象,然后找来找去都找不到问题,只能删减代码慢慢排查。

4、当然,如果只是这些问题,那还真是好解决,可是,可是,某天写了个列表,需要做滚动分页特效,这时候我去兼听滚动条的滚动事件,发现scrollTop不会时时更新,要等到页面停止滚动后才能获取到scrollTop值。

5、页面滚动过程中transition动画不会执行,大坑啊,如果有解决方案的,请留言告知下,万分感谢。。。

以上,是在开发项目过程遇到的,结合查找的资料反复测试得到的结论,如有不对的,欢迎指出。

以上就是分享CSS3中-webkit-overflow-scolling的使用心得的详细内容,更多请关注php中文网其它相关文章!


网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。



相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...