如何用纯 CSS 实现页面之间的平滑过渡

html-css030

如何用纯 CSS 实现页面之间的平滑过渡,第1张

首先,不同的页面之间再怎么平滑,也无法避免浏览器在载入新页面时必然产生的一个刷新动作,这是无法避免的,毕竟这是浏览器,不是app;

其次,即使上述你觉得不是问题,但css本身不是程序,它不可能知道页面之间的切换行为,因此用纯css肯定是无法实现的,必须结合js才行。

一个比较有可能实现的方案就是:通过js在前一个页面的unload事件中把页面逐渐过渡到全白,在后一个页面的load事件中把页面从全白过渡到完全显示。

不过我觉得这简直是舍本逐末啊,还是先把页面的内容搞好把,这些花架子还是少弄为佳。你也不想想为啥其他大网站都没有这样的效果,难道就只有你一个人想到了吗?

-webkit-font-smoothing: subpixel-antialiased

抗锯齿渲染平滑处理效果

经过测试发现,浏览器的内置基础属性中一般已经包含了字体抗锯齿。不过但是为了保险起见,你一定要加样式的话,那就手动加上一个吧

另外:

-webkit-font-smoothing主要有一下三个属性:

none: 无抗锯齿

subpixel-antialiased (default): 次像素平滑 常见于Mac OS和MacType For Windows

antialiased: 灰度平滑 常用于Android和iOS等移动设备的

一、指代不同

1、animation :属性是一个简写属性,用于设置六个动画属性。

2、transition:属性是一个简写属性,用于设置四个过渡属性。

二、特点不同

1、animation :animation: name duration timing-function delay iteration-count direction规定需要绑定到选择器的 keyframe 名称。规定完成动画所花费的时间,以秒或毫秒计。

2、transition:transition: property duration timing-function delay规定设置过渡效果的 CSS 属性的名称。规定完成过渡效果需要多少秒或毫秒。

三、要求不同

1、animation :请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

2、transition:始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。

参考资料来源:百度百科- CSS3

参考资料来源:百度百科-CSS语法