自上而下渐显图片的CSS3实现

本文介绍了如何使用CSS3的transform、animation和@keyframes特性,通过控制一个可见窗口自上而下移动,实现图片自上而下渐显的效果。详细步骤包括设置可见窗口、定义动画和保持图片位置不变。此外,还提到了如何将此效果应用到Vue组件中,以实现更灵活的图片加载动画。
摘要由CSDN通过智能技术生成

代码地址如下:
http://www.demodashi.com/demo/12160.html

目录

  • 一、实现思路
  • 二、所用特性
  • 三、示例代码
  • 四、实例效果
  • 五、组件化(Vue)

一、实现思路

从效果上来想,图片自上而下渐显,图片的位置和大小都是没有变动的。思考过后发现仅仅靠一个标签很难实现预期的效果,于是考虑加一个元素作为可见窗口,控制图片相对于可见窗口的位置来实现目标效果。控制图片在视野中的位置不变,可见窗口自上而下移动,就实现了图片自上而下的显示。

二、所用特性

transform

transform: none|transform-functions;

描述
none 定义不进行转换。
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义定义 3D 转换,使用 16 个值的 4x4 矩阵。不进行转换。
translate(x,y) 定义 2D 转换。
translate3d(x,y,z) 定义 3D 转换。
translateX(x) 定义转换,只是用 X 轴的值。
translateY(y) 定义转换,只是用 Y 轴的值。
translateZ(z) 定义 3D 转换,只是用 Z 轴的值。
scale(x,y) 定义 2D 缩放转换。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 通过设置 X 轴的值来定义缩放转换。
scaleY(y) 通过设置 Y 轴的值来定义缩放转换。
scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿着 X 轴的 3D 旋转。
rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。
perspective(n) 为 3D 转换元素定义透视视图。
animation

animation: name duration timing-function delay iteration-count direction;

描述
animation-name 规定需要绑定到选择器的 keyframe 名称。。
animation-duration 规定
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 CSS3 的动画属性来实现一个自上而下消失的动画效果,具体步骤如下: 1. 首先,设置你想要添加动画效果的元素的初始样式,包括它的位置、大小、颜色等等。 2. 然后,使用 CSS3 的动画属性(如 animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-direction、animation-fill-mode 和 animation-play-state)来定义动画的名称、持续时间、时间函数、延迟时间、重复次数、方向、填充模式和播放状态。 3. 最后,定义动画的关键帧(即动画的开始和结束状态),并将它们添加到动画名称的 @keyframes 规则中。 以下是一个示例代码,可以让一个元素自上而下消失: ``` /* 设置元素的初始样式 */ #myElement { position: relative; top: 0; opacity: 1; } /* 定义动画 */ @keyframes slideOutDown { 0% { top: 0; opacity: 1; } 100% { top: 100%; opacity: 0; } } /* 应用动画效果 */ #myElement { animation-name: slideOutDown; animation-duration: 1s; animation-timing-function: ease-out; animation-delay: 0s; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: forwards; animation-play-state: running; } ``` 在上面的代码中,我们定义了一个名为 slideOutDown 的动画,它在 1 秒钟内让元素从顶部向下滑动并消失。我们还设置了动画的时间函数为 ease-out,这会让动画在结束时慢慢减速,看起来更自然。最后,我们将动画的填充模式设置为 forwards,这会让元素保持动画结束时的状态(即 top: 100% 和 opacity: 0)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值