美文网首页
CSS 背景图加载完成后的过渡动画

CSS 背景图加载完成后的过渡动画

作者: sunny_lvy | 来源:发表于2017-05-20 19:12 被阅读1465次

直接给背景图设置动画效果会出现图片因加载过慢而显示效果不佳的情况,可以通过 JavaScript 来获取图片的加载状态。
下面来实现一个背景图片透明度渐变的效果。

首先来设置要添加背景动画的元素样式

main#background {
    width: 100%;
    height: 100%;
    opacity: 0;
    background-size: cover;
    animation-delay: 0s;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    animation-timing-function: ease;
}
  1. 通过 opacity: 0; 来设置背景图片加载完成之前元素的状态为不可见,这样就能够避免加载过程时的图片卡顿
  2. 通过 animation-fill-mode: forwards; 来设置元素停留在动画完成后的样式,即透明度为 1,元素状态为可见

下面来定义动画

@keyframes fadein {
    0% { opacity: 0; }
    100% { opacity: 1; }
}
  1. 动画效果为透明度从 0 到 1

接下来通过 js 来获取图片的加载状况

var background = new Image();
background.src = 'https://static.pexels.com/photos/57772/pexels-photo-57772.jpeg';
background.onload = function () {
    console.log('Background load complete!');
    var loadbackground = document.getElementById('background');
    loadbackground.style.backgroundImage = 'url(' + background.src + ')';
    loadbackground.style.animationName = 'fadein';
}
  1. 首先来创建一个图片对象
  2. 通过 src 属性来设置图片的链接地址
  3. 为图片对象添加 onload 回调函数,图片加载完成将调用此函数,所以我们将在此函数中实现元素的过渡动画
  4. 获取到将要设置背景图片的元素
  5. 通过 style 属性来设置该元素的背景图片及动画名

通过以上设置我们便能够实现背景图片的过渡效果了!

完整代码:

https://github.com/saynot/y-n-o/blob/master/css-javascript/background-loaded-animation.html


本文结束,感谢阅读!

相关文章

  • CSS 背景图加载完成后的过渡动画

    直接给背景图设置动画效果会出现图片因加载过慢而显示效果不佳的情况,可以通过 JavaScript 来获取图片的加载...

  • 08_dayCSS动画

    CSS3新增的功能有:过渡和动画,阴影和圆角 css3过渡动画: css3都有哪些新增的东西 : 过度,动画,阴影...

  • ios - 原生骨架屏,网络加载过渡动画的封装

    ios - 原生骨架屏,网络加载过渡动画的封装 ios - 原生骨架屏,网络加载过渡动画的封装

  • 30 Seconds of CSS代码块解读(动画篇)

    30 Seconds of CSS代码块解读(动画篇) 这是第三篇解读,主要包括加载效果,自定义过渡动画函数和下划...

  • CSS3动画

    css3动画包括过渡,形变,动画 过渡transition: 指定过渡样式:transition-property...

  • Vue -- 过渡和动画

    单组件过渡和动画 动画方案:css过渡和动画中自动用class;配合css第三方库如 Animate.css;在钩...

  • CSS动画

    transition 过渡动画 设置过渡动画效果的CSS属性名称all 全部leftwidthheightbott...

  • Vue中的动画

    基础CSS过渡和动画 动画:keyframes过渡:transition 列表动画 状态动画 组件和元素切换 1....

  • 有用的Vue第三方库

    Animate.css - CSS动画库 Velocity.js - JS动画库 TweenJS - 状态过渡动画...

  • web前端-CSS3动画

    动画和过渡的异同 相同点过渡和动画都是给元素添加动画的过渡和动画都是CSS3新增的属性过渡和动画都需要满足三要素才...

网友评论

      本文标题:CSS 背景图加载完成后的过渡动画

      本文链接:https://www.haomeiwen.com/subject/noppxxtx.html