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

html-css08

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

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

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

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

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

HTML

<a href="javascript:" class="animate">鼠标移动到我这里</a>

全程css3,无需javascript。(需要支持css3的浏览器才能看到效果。)

-webkit-font-smoothing: subpixel-antialiased

抗锯齿渲染平滑处理效果

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

另外:

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

none: 无抗锯齿

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

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