为网格布局图片打造的超炫 CSS 加载动画

简介:   今天,我想与大家分享一些专门为网格布局的图像制作的很酷的 CSS 加载动画效果。您可以把这些效果用在你的作品集,博客或任何你想要的网页中。设置很简单。我们使用了下面这些工具库来实现这个效果: Normalize.css 来替代传统的 CSS 复位; ZURB Foundation 创建具有响应式的网格; Masonry 创建一个动态的网格布局; imagesLoaded 检查是否已加载图像; Infinite Scroll 加载更多图片并追加到画廊。

  今天,我想与大家分享一些专门为网格布局的图像制作的很酷的 CSS 加载动画效果。您可以把这些效果用在你的作品集,博客或任何你想要的网页中。设置很简单。我们使用了下面这些工具库来实现这个效果:

  现在,让我们来看看一些实际的代码,这应该是大家最想知道的!

 

 

效果演示      源码下载

 

HTML 代码

其实 HTML 代码都是很简单的,复杂和创意的部分在 CSS。代码如下:

<div class="row">
    <div class="large-12 columns main">
        <ul class="small-block-grid-2 medium-block-grid-3 large-block-grid-3 masonry">
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/01.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/02.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/03.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/04.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#/"><img src="images/05.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/06.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/07.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/08.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/09.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/10.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/11.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/12.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#/"><img src="images/13.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/14.jpg" alt="" /></a></li>
            <li class="masonry-item"><a target="_blank" href="#"><img src="images/15.jpg" alt="" /></a></li>
        </ul>

        <ul class="pagination">
            <li><a class="next" href="index-02.php">Next Page</a></li>
        </ul>

        <div class="loading"></div>
    </div><!-- End .main -->
</div><!-- End .row -->

CSS 代码

CSS 部分主要是动画效果,我们以 tada 效果为例:

@keyframes tada
{
    0%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
            -ms-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }

    10%,
    20%
    {
        -webkit-transform: scale(.8) rotate(-2deg);
           -moz-transform: scale(.8) rotate(-2deg);
            -ms-transform: scale(.8) rotate(-2deg);
             -o-transform: scale(.8) rotate(-2deg);
                transform: scale(.8) rotate(-2deg);
    }

    30%,
    50%,
    70%,
    90%
    {
        -webkit-transform: scale(1.04) rotate(2deg);
           -moz-transform: scale(1.04) rotate(2deg);
            -ms-transform: scale(1.04) rotate(2deg);
             -o-transform: scale(1.04) rotate(2deg);
                transform: scale(1.04) rotate(2deg);
    }

    40%,
    60%,
    80%
    {
        -webkit-transform: scale(1.04) rotate(-2deg);
           -moz-transform: scale(1.04) rotate(-2deg);
            -ms-transform: scale(1.04) rotate(-2deg);
             -o-transform: scale(1.04) rotate(-2deg);
                transform: scale(1.04) rotate(-2deg);
    }

    100%
    {
        -webkit-transform: scale(1) rotate(0);
           -moz-transform: scale(1) rotate(0);
            -ms-transform: scale(1) rotate(0);
             -o-transform: scale(1) rotate(0);
                transform: scale(1) rotate(0);
    }
}

.tada
{
    -webkit-animation-name: tada;
       -moz-animation-name: tada;
            animation-name: tada;
}

jQuery

当图像被加载进来后,我们给图像添加上 CSS 效果,然后我们找到并显示该项目,最后会刷新 Masonry 布局。当用户滚动页面的时候,无限滚动插件将装载更多的图像并重复前面的步骤。代码如下:

jQuery(document)
    .ready(function($) {
        // Replace "tada" with an effect from the "effects.css" file.
        var effect = 'animate tada';

        var masonry_selector = '.masonry';

        var masonry_item_selector = '.masonry-item';

        // Initialize Masonry.
        var $masonry = $(masonry_selector)
            .masonry({
                itemSelector: masonry_item_selector
            });

        // Find and hide the items.
        var $masonry_items = $masonry
            .find(masonry_item_selector)
            .hide();

        // Wait for the images to load.
        $masonry
            .imagesLoaded()
            // An image has been loaded.
            .progress(function(instance, image) {
                // Add the effect.
                var $image = $(image.img)
                    .addClass(effect);

                // Find and show the item.
                var $item = $image
                    .parents(masonry_item_selector)
                    .show();

                // Lay out Masonry.
                $masonry
                    .masonry();
            });

        // Load more items.
        $masonry
            .infinitescroll({
                navSelector: '.pagination',
                nextSelector: '.pagination .next',
                itemSelector: masonry_item_selector,
                loading: {
                    finishedMsg: 'No more pages to load.',
                    img: 'images/loader.gif',
                    msgText: 'Loading the next page.',
                    selector: '.loading'
                }
            }, function(items, data, url) {
                var $items = $(items)
                    .hide()
                    .imagesLoaded()
                    .progress(function(instance, image) {
                        var $image = $(image.img)
                            .addClass(effect);

                        var $item = $image
                            .parents(masonry_item_selector)
                            .addClass('infinite-scroll-item')
                            .show();

                        $masonry
                            .masonry('appended', $item);
                    });
            });
    });

  

您可能感兴趣的相关文章

 

本文链接:为网格布局图片打造的超炫 CSS 加载动画效果

编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源

作者:山边小溪
主站:yyyweb.com 记住啦:)
欢迎任何形式的转载,但请务必注明出处。

相关文章
|
16天前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
58 0
|
16天前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
154 0
|
4月前
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
269 83
|
3月前
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
8月前
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
429 143
|
16天前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
48 1
|
3月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
3月前
|
前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
223 41
|
4月前
|
计算机视觉 Python
B超单生成器在线制作, 怀孕b超单图片在线制作,JS+CSS+html演示
这个生成器将使用Python和一些图像处理库来创建逼真的B超单图片。主要功能包括:

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 7
    React 中如何安装与使用 Tailwind CSS
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
  • 9
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 1
    React 中如何安装与使用 Tailwind CSS
    80
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    48
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    107
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    64
  • 5
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    58
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    154
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    132
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    81
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    44
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    77