时尚设计!三种奇特的网格加载效果【附源码下载】

简介:   如果你看过三星企业设计中心网站,你肯定已经注意到了时尚的网格加载效果。每一项加载的时候,背景色会首先滑出,然后图像显现出来。滑动颜色表示图像,也就是说它是彩色图像的主色。   在这篇文章中,我们想向您展示了如何使用 Masonry 网格砌体插件,结合 CSS 动画重现这种效果。

  如果你看过三星企业设计中心网站,你肯定已经注意到了时尚的网格加载效果。每一项加载的时候,背景色会首先滑出,然后图像显现出来。滑动颜色表示图像,也就是说它是彩色图像的主色。

  在这篇文章中,我们想向您展示了如何使用 Masonry 网格砌体插件,结合 CSS 动画重现这种效果。另外在这里,我们还借助了 ColorFinder 来获得的图像的最突出的颜色来作为初始的加载背景色使用。

 

  

立即下载      在线演示

 

  温馨提示:为保证最佳的效果,请在 IE10+、Chrome、Firefox 和 Safari 等现代浏览器中浏览。

  另外,这个例子中我们不会去动态加载项目或图像,而是模拟在页面滚动的时候去显示。当然,在实际情况下可能是动态加载的内容,可以使用类似延迟加载(Lazy Loading)或无限滚动(Infinite Scrolling)插件实现。

HTML

  我们使用一个无序列表显示网格。第一个列表项将有一个特殊的风格,我们给它添加样式类“title-box” :

<section class="grid-wrap">
    <ul class="grid swipe-right" id="grid">
        <li class="title-box">
            <h2>Illustrations by <a href="http://ryotakemasa.com/">Ryo Takemasa</a></h2>
        </li>
        <li><a href="#"><img src="img/1.jpg" alt="img01"><h3>Kenpo News April 2014 issue</h3></a></li>
        <li><a href="#"><img src="img/2.jpg" alt="img02"><h3>SQUET April 2014 issue</h3></a></li>
        <li><!-- ... --></li>
        <!-- ... -->
    </ul>
</section>

  每个列表项包含一个图像和一个标题的锚。请注意,我们将控制哪些动画的类型将被用于给无序列表的三种 Class,swipe-right,swipe-down 或者 swipe-rotate。当加载页面时,我们想让可见的项目是已经显示的,当滚动的时候要触发动画效果。

CSS

  初始的时候,元素都是隐藏的,当元素进入可视区域(Viewport),我们给元素添加动画类来出发元素的动画效果。

  对于 Swipe Right  效果 ,我们将让窗帘元素的 translate 值为0 ,使得它从左侧移动到中心,然后我们将它再移动到右侧。通过设置 translate 值为50%和60% ,我们 让元素在中间过程停留了一下,不只是由左到右线性的移动:

/* Swipe right */
.grid.swipe-right li.animate .curtain {
    animation: swipeRight 1.5s cubic-bezier(0.6,0,0.4,1) forwards;
}
 
@keyframes swipeRight {
    50%, 60% { transform: translate(0); }
    100% { transform: translate3d(100%,0,0); }
}

  这里之所以使用 translate(0) 是因为在一些浏览器(例如 IE11),translate3d(0,0,0) 在这种情况下会有问题。

  Swipe Down 效果基本类似,只是把Y轴替换为X轴:

/* Swipe down */
.grid.swipe-down li.animate .curtain {
    animation: swipeDown 1.5s cubic-bezier(0.6,0,0.4,1) forwards;
}
 
@keyframes swipeDown {
    50%, 60% { transform: translate(0); }
    100% { transform: translate3d(0,-100%,0); }
}

  旋转效果实现原理也是一样的,就是把移动动画改为旋转,代码代码:

/* Swipe rotate */
.grid.swipe-rotate li.animate .curtain {
    animation: swipeRotate 1.5s ease forwards;
}
 
@keyframes swipeRotate {
    50%, 60% { transform: rotate3d(0,0,1,0deg); }
    100% { transform: rotate3d(0,0,1,-90deg); }
}

  样式部分,上面的动画效果代码就是核心部分了。

JavaScript

  这个效果稍微有点复杂,因此还需要 JavaScript 来做一些控制,下面是核心部分的代码:

GridScrollFx.prototype._scrollPage = function() {
    var self = this;
    this.items.forEach( function( item ) {
        if( !classie.has( item.el, 'shown' ) && !classie.has( item.el, 'animate' ) && inViewport( item.el, self.options.viewportFactor ) ) {
            ++self.itemsRenderedCount;
 
            if( !item.curtain ) {
                classie.add( item.el, 'shown' );
                return;
            };
 
            classie.add( item.el, 'animate' );
             
            // after animation ends add class shown
            var onEndAnimationFn = function( ev ) {
                if( support.animations ) {
                    this.removeEventListener( animEndEventName, onEndAnimationFn );
                }
                classie.remove( item.el, 'animate' );
                classie.add( item.el, 'shown' );
            };
 
            if( support.animations ) {
                item.curtain.addEventListener( animEndEventName, onEndAnimationFn );
            }
            else {
                onEndAnimationFn();
            }
        }
    });
    this.didScroll = false;
}

  在上面的代码中,我们给进入可视区域的元素添加动画类以触发动画效果,在动画结束的回调时间中删除绑定的事件以及动画类,这样就能达到我们要的效果了。 

 

立即下载      在线演示

 

您可能感兴趣的相关文章

 

本文链接:奇特的网格加载效果【附源码下载】 via codrops

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

本文来自【梦想天空(http://www.cnblogs.com/lhb25/)】

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

相关文章
|
3月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
153 3
|
3月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
253 0
|
3月前
|
图形学 C# 开发者
Unity粒子系统全解析:从基础设置到高级编程技巧,教你轻松玩转绚丽多彩的视觉特效,打造震撼游戏画面的终极指南
【8月更文挑战第31天】粒子系统是Unity引擎的强大功能,可创建动态视觉效果,如火焰、爆炸等。本文介绍如何在Unity中使用粒子系统,并提供示例代码。首先创建粒子系统,然后调整Emission、Shape、Color over Lifetime等模块参数,实现所需效果。此外,还可通过C#脚本实现更复杂的粒子效果,增强游戏视觉冲击力和沉浸感。
197 0
|
5月前
鬼刀画风扁平化粒子炫动引导页美化源码
鬼刀画风扁平化粒子炫动引导页美化源码
42 5
鬼刀画风扁平化粒子炫动引导页美化源码
|
5月前
|
图形学
【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
201 0
|
6月前
自适应二次元404页面源码
自适应二次元404页面源码
121 3
自适应二次元404页面源码
|
移动开发 前端开发 JavaScript
分享8个前端可以制作360度WebVr全景视图框架
分享8个前端可以制作360度WebVr全景视图框架
1783 0
分享8个前端可以制作360度WebVr全景视图框架
|
图形学
【Unity实战系列】如何把你的二次元老婆/老公导入Unity进行二创并且进行二次元渲染?(附模型网站分享)
【Unity实战系列】如何把你的二次元老婆/老公导入Unity进行二创并且进行二次元渲染?(附模型网站分享)
530 0
|
vr&ar 图形学 Windows
【Unity3D 灵巧小知识点】☀️ | Unity 中 怎样切换 天空盒 背景
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【Unity3D 灵巧小知识点】☀️ | Unity 中 怎样切换 天空盒 背景
|
vr&ar 图形学
【Unity3D 灵巧小知识点】☀️ | Unity 中 使用代码切换天空盒
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
【Unity3D 灵巧小知识点】☀️ | Unity 中 使用代码切换天空盒
下一篇
无影云桌面