vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue3加载图片

Vue3实现优雅加载图片的动画效果

作者:萌萌哒草头将军

这篇文章主要为大家详细介绍了Vue3如何实现加载图片时添加一些动画效果,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下

这篇文章是紧接上篇的内容,Vue3如何优雅的加载大量图片

上篇文章,我们只是简单增加了一个渐变的效果。

这篇文章,我分享两个新的动画:

高斯模糊效果

function callback(
  entries: IntersectionObserverEntry[],
  observer: IntersectionObserver
) {
  entries.forEach((entry) => {
    if (entry.intersectionRatio <= 0) return;
    const img = entry.target as HTMLImageElement;
    const src = img.getAttribute("data-src");
    img.setAttribute("src", src ?? ""); // 将真实的图片地址赋给 src 属性
    img.onload = () => {
      img.setAttribute("class", "fade-in");
    };
    observer.unobserve(img);
  });
}

对应的样式

@keyframes fadeIn {
  from {
    filter: blur(10px);
  }
  to {
    filter: blur(0px);
  }
}
.fade-in {
  animation: fadeIn 0.3s ease-in;
}

效果如下:

缩放动画

img.onload = () => {
  img.setAttribute("class", "transform-in");
};

对应的样式

@keyframes bounce-in {
  0% {
    transform: scale(0.8);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.transform-in {
  opacity: 0;
  animation: bounce-in 0.5s ease-in-out forwards;
}

效果如下

到此这篇关于Vue3实现优雅加载图片的动画效果的文章就介绍到这了,更多相关Vue3加载图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文