文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用CSS3来实现滚动视差效果

2024-04-02 19:55

关注

本篇内容主要讲解“如何使用CSS3来实现滚动视差效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用CSS3来实现滚动视差效果”吧!


在web设计中,最常见的实现视差效果的方式是使用jQuery插件。但这种方法有一些弊端。这些插件大多都是在window对象的scroll事件上放置监听器。这会导致JavaScript需要处理大量的事件触发(处理scroll事件很容易造成浏览器性能问题,使用时需要非常小心。)移动不同的层,计算背景的位置,设置图片的属性,这都引起了大量的DOM操作。

简言之,使用JavaScript来实现视差效果会让页面的滚动出现性能问题,出现卡顿。

background-attachment属性回顾
background-attachment -- 定义背景图片随滚动轴的移动方式
取值: scroll | fixed | inherit
scroll: 随着页面的滚动轴背景图片将移动
fixed: 随着页面的滚动轴背景图片不会移动
inherit: 继承
初始值: scroll
继承性: 否
适用于: 所有元素
background:背景.attachment:附着.
示例

CSS Code复制内容到剪贴板

  1. body    

  2. {   

  3.  background-image:url('list-orange.png');   

  4.  background-attachment:fixed;   

  5.  background-repeat:repeat-x;   

  6.  background-position:center center;   

  7. }  

屏幕的背景图片为一条橙色线.随着滚动轴移动,橙色线的视觉位置不变.
CSS background-attachment 属性示例

使用background-attachment: fixed实现视差效果

为什么只有一小部分人知道,这种效果实际上可以用CSS实现。

为了实现视差效果,多个背景图片必须放置在不同的元素上。这些背景图需要定义成background-attachment: fixed。通过设定background-attachment,我们可以改变背景图像的效果和位置。

background-attachment的缺省值是scroll,也就是背景图片和内容的位置是相对静止的。这我们大家都见过,当我们上下滚动一个网页时,背景和内容一起滚动。

当把background-attachment设置成fixed时,事情会变得有趣。fixed是说背景图片不随内容一起滚动,而是跟窗口保持静止。也就是说,当你拖动滚动条时,背景图片没有变化。这就能够产生漂亮的视差效果。

让我看一个实际实现:

CSS Code复制内容到剪贴板

  1. <!-- Four containers for setting the background images -->   

  2. <div class="parallax">   

  3.   <div class="bg__foo">foo</div>   

  4.   <div class="bg__bar">bar</div>   

  5.   <div class="bg__baz">baz</div>   

  6.   <div class="bg__bazz">bazz</div>   

  7. </div>   

  8. // setting base styles to image containers   

  9. [class*="bg__"] {   

  10.   height: 50vh;   

  11.   

  12.   text-indent: -9999px;   

  13.   

  14.     

  15.   background-attachment: fixed;   

  16.   

  17.     

  18.   background-position: center center;   

  19.   

  20.     

  21.   background-size: cover;   

  22.   

  23.     

  24.   &:nth-child(2n) {   

  25.     box-shadow: inset 0 0 1em #111;   

  26.   }   

  27. }   

  28.   

  29. .bg__foo {   

  30.   background-image: url(   

  31.     /file/upload/202210/19/1otmd1mx5th.jpg   

  32.   );   

  33. }   

  34.   

  35. .bg__bar {   

  36.   background-image: url(   

  37.     /file/upload/202210/19/kske5l5dym1.jpg   

  38.   );   

  39. }   

  40.   

  41. .bg__baz {   

  42.   background-image: url(   

  43.     /file/upload/202210/19/usdchdmt1di.jpg   

  44.   );   

  45. }   

  46.   

  47. .bg__bazz {   

  48.   height: 100vh;   

  49.   

  50.   background-image: url(   

  51.     /file/upload/202210/19/1otmd1mx5th.jpg   

  52.   );   

  53. }  

关于这种技术的浏览器兼容情况,你可以参考这里,基本上,现代浏览器和IE9+的浏览器都支持。


观看演示


对我个人而言,我更喜欢CSS技术实现的视差效果,而不是用JavaScript。用CSS实现,是受浏览器原生支持,没有编程逻辑,没有对DOM额外的操作,使得整个方案非常的简洁漂亮。

即使是CSS实现的视差效果,也会给浏览器带来负担。

background-attachment: fixed会导致浏览器更多的渲染,也会影响浏览器滚动的效率。所以,开发时一定要多做测试,视性能情况而决定实现的效果。

到此,相信大家对“如何使用CSS3来实现滚动视差效果”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯