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

这篇文章主要介绍了使用css3来实现滚动视差效果的教程,主要使用到了background-attachment属性,需要的朋友可以参考下

“视差(parallax)”效果现在在互联网上越来越流行了。如果你还没听说过什么是视差效果,它其实就是利用图片形成不同的层,分别以不同的速度,不同的方向移动产生的效果。这会产生出很奇妙的视觉效果,能有力的吸引住浏览者的目光。

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

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

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

立即学习“前端免费学习笔记(深入)”;

body    {    background-image:url('list-orange.png');    background-attachment:fixed;    background-repeat:repeat-x;    background-position:center center;   }

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

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

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

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

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

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

让我看一个实际实现:

   

foo

bar

baz

bazz

// setting base styles to image containers [class*="bg__"] { height: 50vh; text-indent: -9999px; /* fix background */ background-attachment: fixed; /* center it */ background-position: center center; /* Scale it nicely to the element */ background-size: cover; /* just make it look a bit better */ &:nth-child(2n) { box-shadow: inset 0 0 1em #111; } } .bg__foo { background-image: url( http://www.webhek.com/wordpress/wp-content/uploads/2014/07/parallax1.jpg ); } .bg__bar { background-image: url( http://www.webhek.com/wordpress/wp-content/uploads/2014/07/parallax2.jpg ); } .bg__baz { background-image: url( http://www.webhek.com/wordpress/wp-content/uploads/2014/07/parallax3.jpg ); } .bg__bazz { height: 100vh; background-image: url( http://www.webhek.com/wordpress/wp-content/uploads/2014/07/parallax1.jpg ); }

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

CSS3 3D旋转rotate效果的使用介绍

对于CSS浮动float和定位position的解析

利用css3设置没有上下边的列表间隔线的方法

以上就是使用CSS3来实现滚动视差效果的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:32:26
下一篇 2025年12月24日 01:32:36

相关推荐

  • CSS的table-layout属性的用法

    今天给大家详细说一下table-layout属性的用法, tablelayout属性用来显示表格单元格、行、列的算法规则。本文通过实例代码给大家介绍了css的table-layout属性的用法,需要的朋友参考下吧 前言: 今天来和大家详细说一下table-layout属性的用法。   /*eg:设置…

    2025年12月24日
    000
  • CSS实现有立体感的横向按钮式菜单效果

    这篇文章主要为大家介绍了css实现有立体感的横向按钮式菜单效果代码,可实现鼠标滑过呈现按钮按下的效果,具有极强的3d立体效果,涉及css基于hover属性的border边框设置技巧,需要的朋友可以参考下 本文实例讲述了CSS实现有立体感的横向按钮式菜单效果代码。分享给大家供大家参考。具体如下: 这是…

    好文分享 2025年12月24日
    000
  • 关于css属性的选择对动画性能的影响

    下面为大家带来一篇深入理解css属性的选择对动画性能的影响。内容挺不错的,现在分享给大家,也给大家做个参考。 现在手机的占比越来越高,各种酷炫页面层出不穷,这些特效都离不开css动画。说到css动画,主流的情况也就无非这两大类:位移和形变。而我们在写一个动画特效的过程中,如何去提升它的性能呢?当然首…

    2025年12月24日 好文分享
    000
  • CSS实现radio和checkbox的 实现效果

    这篇文章主要介绍了纯css实现radio和checkbox实现效果示例的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 radio-and-checkbox 纯CSS实现radio和checkbox实现效果 reset-radio 在开发PC端的项目时,经常会用到radio和checkb…

    好文分享 2025年12月24日
    000
  • 关于CSS实现漂亮的下拉导航效果

    这篇文章主要为大家介绍了纯CSS实现漂亮的下拉导航效果代码,通过简单的css样式设置及针对鼠标事件的响应实现下拉菜单导航效果,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了纯CSS实现漂亮的下拉导航效果代码。分享给大家供大家参考。具体如下: 这是一款纯CSS完成的下拉导航代码,蓝色经典色调,…

    2025年12月24日
    000
  • CSS实现自适应宽度的菜单按钮效果

    这篇文章主要为大家介绍了css实现自适应宽度的菜单按钮效果代码,实例分析了css针对页面自适应宽度的相关设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了CSS实现自适应宽度的菜单按钮效果代码。分享给大家供大家参考。具体如下: 这是一款基于CSS打造的自适应宽度的按钮效果代码,本效…

    2025年12月24日
    000
  • 关于CSS Selector的学习

    这篇文章主要介绍了css 学习笔记之css selector的相关资料,需要的朋友可以参考下 CSS1 中定义的选择器 类型选择器 用于选择指定类型的元素(其实他就是 html 标签选择器),常见用法如下: body { /*对 body 元素定义样式*/}body,p { /*同时选择多种标签元素…

    2025年12月24日
    000
  • 如何使用CSS实现的大型下拉菜单

    下拉菜单在很多网页中都能应用到,这篇文章主要介绍了纯css实现的大型下拉菜单的示例代码的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 这是一款纯CSS实现的大型下拉菜单。该大型菜单使用HTML和纯CSS代码制作,没有任何js代码,不依赖任意第三方插件。适合用于栏目分类较多的大型网站使用…

    好文分享 2025年12月24日
    000
  • 关于CSS选择器种类及使用介绍

    常用的有标签选择器、类选择器、ID选择器等等,其实还有很多,在接下来的文章中为大家详细介绍下这些选择器的种类及其使用 首先说主要都有哪些先择器 1.标签选择器(如:body,p,p,ul,li) 2.类选择器(如:class=”head”,class=”head_…

    好文分享 2025年12月24日
    000
  • 关于css利用一张背景图制作导航菜单的实现思路

    利用一张背景图片来实现菜单的悬停状态,没有什么不可思议完全可以办得到,仅这一张图片,我们实现一个横行css菜单。并设置它们的悬停效果,感兴趣的朋友可以参考下哈,希望可以帮助到你 今天介绍的这款简单非常简单,利用一张背景图片来实现菜单的悬停状态。我们看下面的图片: 仅这一张图片,我们实现一个横行CSS…

    2025年12月24日
    000
  • 如何解决css中float:right右对齐元素会换行不在同一条线上

    这篇文章主要介绍了关于如何解决css中float:right右对齐元素会换行不在同一条线上,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 使用float设置右对齐显示的时候,我们通常会遇到,右对齐的元素会换行,这样就会出现左右元素不在同一条线上,下面为大家介绍下两种解决方法,有类似情…

    好文分享 2025年12月24日
    000
  • CSS中的em、px 、pt 、Percent之间的关系及换算

    这篇文章主要介绍了css font-size: em、 px 、pt 、percent之间的关系及换算,本篇整理的还是比较详细的,需要的朋友可以参考下 一、基础介绍 1、“Ems”: em,大小不固定 ,成为相对单位(body则相对浏览器的默认字体设置,子集相对父级), 浏览器默认设置字体大小为16…

    2025年12月24日
    000
  • 关于css的background-attachment属性的使用

    这篇文章主要为大家介绍了在css中,使用背景附件属性background-attachment可以设置背景图像是随对象滚动还是固定不动,需要的朋友可以参考下 一、background-attachment属性 在CSS中,使用背景附件属性background-attachment可以设置背景图像是随…

    2025年12月24日
    000
  • CSS中使用Flexbox来达到居中效果的方法实现

    这篇文章主要介绍了css中flexbox来达到居中效果的实例,注意一下ie浏览器中的兼容问题,需要的朋友可以参考下 CSS未来发展的方向就是采用Flexbox这种设计,解决像垂直居中这种共同的问题。请注意,Flexbox有不止一种办法居中,他也可以用来分栏,并解决奇奇怪怪的布局问题。 .Center…

    2025年12月24日
    000
  • css实现自动换行以防撑破div影响排版

    自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是css如何实现换行的方法 对于p,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html 正常文字的换行(亚洲文字和…

    好文分享 2025年12月24日
    000
  • CSS实现面包屑导航栏

    这篇文章主要为大家介绍了两个纯css 面包屑导航栏实现代码,内容比较简单,不会的朋友可以进来看一下,其中html代码实现非常简单,需要的朋友可以参考下   下面是两个纯CSS 面包屑导航栏实现代码,在网上找了一些方法但觉得都不合适唯独这两个纯css的就差不多了,下面一聚小编来给大家整理一下。   方…

    2025年12月24日
    000
  • css页面中左中右分栏布局的实现

    页面左中右分栏布局在目前的网页布局中是比较常见的,下面就与大家分享两个不错的方法可以实现左中右分栏布局,代码很详细,需要的朋友可不要错过 以下代码复制粘贴即可使用: 示例一:  .page_center { width:100%; } #nav { background-color:red; hei…

    好文分享 2025年12月24日
    000
  • 如何使用css属性nth-child(n)匹配选择第n个子元素

    这篇文章主要介绍了关于如何使用css属性nth-child(n)匹配选择第n个子元素,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 css匹配选择第n个子元素可以使用:nth-child(n) 选择器,其匹配属于其父元素的第N个子元素,不论元素的类型 加入要让第二个 th 占tabl…

    好文分享 2025年12月24日
    000
  • 关于css 属性选择器的解析

    下面为大家带来一篇全面了解css 属性选择器。内容挺不错的,现在就分享给大家,也给大家做个参考。 1.[class~=”flower”]:选中有flower的class  class=”flower ss”  class=”ss flower” 2.[class|=&#821…

    好文分享 2025年12月24日
    000
  • 如何使用CSS实现鼠标悬浮出现遮罩层

    这篇文章给大家分享了两个鼠标悬浮出现说明遮罩层的效果,大家可以根据自己的需要选择某一种效果,两种效果文中都给出了实例代码,下面来一起看看吧。 先来一个简单的实现方法: Document .mask-wrapper { position: relative; overflow: hidden; } .…

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信