iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >CSS怎么实现滚动阴影效果
  • 817
分享到

CSS怎么实现滚动阴影效果

2023-06-06 11:06:27 817人浏览 独家记忆
摘要

这篇文章主要为大家展示了CSS怎么实现滚动阴影效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“CSS怎么实现滚动阴影效果”这篇文章吧。css是什么意思css是一种用来表现html或XML等文件样

这篇文章主要为大家展示了CSS怎么实现滚动阴影效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“CSS怎么实现滚动阴影效果”这篇文章吧。

css是什么意思

css是一种用来表现html或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。

开门见山,有这样一种非常常见的情况,对于一些可滚动的元素而言。通常在滚动的时候会给垂直于滚动的一侧添加一个阴影,用于表明当前有元素被滚动给该滚出了可视区域,类似这样:

CSS怎么实现滚动阴影效果

可以看到,在滚动的过程中,会出现一条阴影:

CSS怎么实现滚动阴影效果

对于两侧的列在滚动的过程中,静止不动,吸附在边界的问题,通常 CSS 使用 position: sticky 即可解决。

但是对于滚动过程中才出现的阴影(滚动容器内的内容没有贴边,则阴影出现,贴边,则阴影消失),之前的做法一直都是需要借助 js 完成的。

那么,有没有纯 CSS 能够实现的方案呢?嘿嘿嘿,有。有一种非常讨巧的障眼法,下面就让我们来一步一步揭开它的面纱。

神奇的 background-attachment

要使用纯 CSS 实现上述滚动阴影,最核心的要使用到的元素就是 background-attachment

在较早的一篇文章里 -- CSS 实现视差效果,详细了介绍了 background-attachment,借助了 background-attachment: fixed 可以简单的实现网站的滚动视差或者是类似图片点击的水纹效果,类似这样:

CSS怎么实现滚动阴影效果

当然,今天我们的主角不是 background-attachment: fixed,而是 background-attachment: srcoll

background-attachment: srcoll

首先,介绍一下 background-attachment,如果指定了 background-image ,那么 background-attachment 决定背景是在视口中固定的还是随着包含它的区块滚动的。

简单而言,就是决定了在可滚动的容器中,背景图案是如何进行运动的。通过两个简单的 Demo,弄懂 background-attachment: srcollbackground-attachment: local

background-attachment: local,这个就是和我们日常使用中的用法是一致的,可滚动容器的背景图案随着容器进行滚动:

CSS怎么实现滚动阴影效果

background-attachment: scroll,这个是今天的主角,它表明背景相对于元素本身固定, 而不是随着它的内容滚动:

CSS怎么实现滚动阴影效果

如果你还没弄明白他们的区别,可以戳下面的 DEMO 自己感受一下:

Demo地址:https://codepen.io/Chokcoco/pen/xJJorg

srcolllocal 同时使用,实现障眼法

到这里,可能很多同学还是懵的,我们到底要做什么呢?这个和本文的滚动阴影有什么关联呢?

别急,滚动阴影的难点在于,初始没有滚动的时候是没有阴影展现的,只有当开始滚动,阴影才会出现。

所以这里,我们借助 background-attachment: srcollbackground-attachment: local 两个属性,在滚动初始的时候,利用两层背景叠加在一起隐藏阴影背景,真正滚动的时候,将叠加的部分移走,只漏出阴影部分即可。

嗯?什么意思。我们用给滚动容器,加上两个渐变效果,分别运用上 background-attachment: srcollbackground-attachment: local,再叠加起来,像是这样:

<!-- 可滚动容器 --><ul>    <li>...</li>    ...    <li>...</li></ul>
// 情形一:.g-one {    background: linear-gradient(#fff, #f00);    background-size: 100% 10px;    background-repeat: no-repeat;    background-attachment: local;}// 情形二:.g-two {    background: radial-gradient(at 50% 0, #000, #0f0 70%);    background-size: 100% 10px;    background-repeat: no-repeat;    background-attachment: scroll;}// 情形三:.g-combine {    background:         linear-gradient(#fff, #f00),        radial-gradient(at 50% 0%, #000, #0f0 70%);    background-size: 100% 10px, 100% 10px;    background-repeat: no-repeat;    background-attachment: local, scroll;}

实际效果就是这样,一个背景是随容器滚动,一个背景是随容器固定。随容器滚动的背景充当初始的遮罩层:

CSS怎么实现滚动阴影效果

OK,可以看大,当滚动的时候,最后一幅叠加的情况,其实就是我们需要的滚动的时候展示不同的颜色(阴影)的效果。我们调整一下两个渐变的颜色,遮罩层(background-attachment: local)为白色,再把固定不动的阴影层(background-attachment: scroll),利用径向渐变模拟为我们想要的阴影颜色。

CSS 代码大概是这样:

.g-final {    background:         linear-gradient(#fff, transparent 100%),        linear-gradient(rgba(0, 0, 0, .5), transparent 100%);    background-size: 100% 30px, 100% 10px;    background-repeat: no-repeat;    background-attachment: local, scroll;}

利用 linear-gradient(rgba(0, 0, 0, .5), transparent 100%) 线性渐变模拟了一层灰色阴影:

CSS怎么实现滚动阴影效果

OK,大功告成。上述所有 DEMO,可以戳这里看看:

Demo地址:Https://codepen.io/Chokcoco/pen/QWKmjKd

如文章开头所示,这技巧也是可以直接运用在 table 里面:

CSS怎么实现滚动阴影效果

Demo地址:https://codepen.io/Chokcoco/pen/abMQMJQ

一些问题

层叠顺序

当然,在上述的过程中,其实一直有个问题,就是由于是使用背景 background 模拟的阴影,其实最终的效果,内容是在阴影(背景之上的),但是实际效果其实没有很大的差别,如果能忍受这一点,这个方案是完全可用的。

兼容性

嗯,当然还有一个问题是就是 background-attachment 的兼容问题。让我们看看 CAN I USE:

CSS怎么实现滚动阴影效果

Can i use 下面的注释表明,大部分兼容问题其实是出在 background-attachment: fixed,对于本文的效果影响不大。

以上就是关于“CSS怎么实现滚动阴影效果”的内容,如果改文章对你有所帮助并觉得写得不错,劳请分享给你的好友一起学习新知识,若想了解更多相关知识内容,请多多关注编程网精选频道。

--结束END--

本文标题: CSS怎么实现滚动阴影效果

本文链接: https://www.lsjlt.com/news/246710.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS怎么实现滚动阴影效果
    这篇文章主要为大家展示了CSS怎么实现滚动阴影效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“CSS怎么实现滚动阴影效果”这篇文章吧。css是什么意思css是一种用来表现HTML或XML等文件样...
    99+
    2023-06-06
  • CSS怎么实现阴影效果
    这篇文章给大家分享的是有关CSS怎么实现阴影效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。box-shadow:用来添加阴影。它有四个属性:横坐标偏移量(相对于元素的左上角定点);纵坐标偏移量(相对于元素的左...
    99+
    2023-06-27
  • css中怎么实现动态阴影效果
    本篇文章为大家展示了css中怎么实现动态阴影效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。css实现动态阴影创建与类似的阴影box-shadow 而是基于元素本...
    99+
    2024-04-02
  • css阴影效果怎么实现
    这篇文章主要介绍“css阴影效果怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css阴影效果怎么实现”文章能帮助大家解决问题。box-shadow属性可以设置一个或多个下拉阴影的框。CSS3...
    99+
    2023-07-04
  • css怎么实现曲边阴影与翘边阴影效果
    本篇内容主要讲解“css怎么实现曲边阴影与翘边阴影效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css怎么实现曲边阴影与翘边阴影效果”吧!一、曲边阴影效果图如下:它不仅是四周有阴影,下部还有...
    99+
    2023-07-04
  • css如何实现阴影效果
    这篇文章主要介绍了css如何实现阴影效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style=...
    99+
    2023-06-14
  • css中怎么实现一个阴影效果
    本篇文章为大家展示了css中怎么实现一个阴影效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:.mydiv{ width:250px;height:aut...
    99+
    2024-04-02
  • css怎么实现悬浮效果的阴影
    这篇文章主要介绍了css怎么实现悬浮效果的阴影,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要实现的效果图:实现的代码:-webkit-box-shadow:0px ...
    99+
    2023-06-08
  • 怎么在CSS中实现文本阴影与元素阴影效果
    怎么在CSS中实现文本阴影与元素阴影效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。文本阴影介绍在CSS中使用text-shadow属性设置文本阴影,该属性一共有4个属性值如...
    99+
    2023-06-08
  • css阴影效果的实现方法
    这篇文章主要为大家展示了css阴影效果的实现方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“css阴影效果的实现方法”这篇文章吧。css是什么意思css是一种用来表现HTML或XML等文件样式的...
    99+
    2023-06-06
  • Android怎么实现阴影效果
    这篇文章主要介绍了Android怎么实现阴影效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么实现阴影效果文章都会有所收获,下面我们一起来看看吧。实现形式elevationMaterial D...
    99+
    2023-07-02
  • css实现阴影效果的方法
    这篇文章主要介绍了css实现阴影效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法:1、使用text-shadow属性,语法“text-shadow: 水平阴影 垂...
    99+
    2023-06-14
  • css3怎么实现阴影效果
    小编给大家分享一下css3怎么实现阴影效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在css中...
    99+
    2024-04-02
  • css如何实现设置阴影效果
    这篇文章将为大家详细讲解有关css如何实现设置阴影效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css设置阴影效果:1、通过主元素和副元素的阴影效果叠加产生曲线阴影效果;2、通过添加两个副元素,并将两...
    99+
    2023-06-14
  • 怎么用css实现滚动效果
    使用css实现滚动效果的方法:1.通过“overflow”属性设置滚动条使网页元素的内容实现滚动效果,在css中添加样式代码,比如语法样式为:“overflow: scroll;”设置滚动条即可。css通过overflow属性设置滚动条示例...
    99+
    2024-04-02
  • 怎么使用Html5、CSS实现文字阴影效果
    小编给大家分享一下怎么使用Html5、CSS实现文字阴影效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前两天有一个学html5前端小美女问我一个有关文字阴影的...
    99+
    2023-06-09
  • 怎么用CSS3实现阴影效果
    这篇文章主要讲解了“怎么用CSS3实现阴影效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS3实现阴影效果”吧!  &nbs...
    99+
    2024-04-02
  • css如何实现div边框阴影效果
    本篇内容主要讲解“css如何实现div边框阴影效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css如何实现div边框阴影效果”吧!代码如下:<style type="...
    99+
    2023-07-04
  • 怎么使用CSS实现比普通阴影更加立体的阴影效果
    这篇文章主要介绍“怎么使用CSS实现比普通阴影更加立体的阴影效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用CSS实现比普通阴影更加立体的阴影效果”文章能...
    99+
    2024-04-02
  • css如何实现下边框阴影效果
    这篇文章主要介绍了css如何实现下边框阴影效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言,主要是...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作