2017-04-25 105 views
0

我正在为我的网站制作一个投资组合,并且正在使用砌体网格。但是,我试图让图像在按顺序打开时淡入。像这个网站上的东西Michael Molfetas。我试过使用CSS转换,我检查了砌体文档,但我不能让它工作。我把我在网上找到的股票图像放在一起,但格式几乎是我想要的。砌体网格图像顺序淡入

function myFunction() { 
 
    \t var x = document.getElementById("myTopnav"); 
 
    \t if (x.className === "topnav") { 
 
     \t x.className += " responsive"; 
 
    \t } else { 
 
     \t x.className = "topnav"; 
 
    \t } 
 
\t } 
 

 
$(document).ready(function() { 
 
    $('#nav-icon3').on('click', function() { 
 
    $(this).toggleClass('open'); 
 
    }); 
 
}); 
 

 
$('.grid').masonry({ 
 
    // options 
 
    itemSelector: '.grid-item', 
 
    columnWidth: 250, 
 
    isFitWidth: true 
 
});
* { 
 
\t box-sizing: border-box; 
 
} 
 

 
html, body { 
 
\t padding: 0; 
 
\t margin: 0; 
 
\t width: 100%; 
 
\t height: 100%; 
 
\t font-size: 1rem; 
 
} 
 

 
.header { 
 
\t background-color: #FFF; 
 
\t width: 100%; 
 
\t margin: 0px auto; 
 
\t display: block; 
 
\t top: 0; 
 
\t margin-top: 7%; 
 
\t height: 80px; 
 
} 
 

 
h1 { 
 
\t margin-left: 5%; 
 
\t padding-left: 1%; 
 
\t font-family: 'Lobster', cursive; 
 
\t margin-top: 0; 
 
\t float: left; 
 
\t margin-bottom: 0; 
 
\t color: #D18E8F; 
 
} 
 

 
#nav-icon { 
 
\t width: 30px; 
 
\t height: 30px; 
 
    display: block; 
 
\t position: relative; 
 
\t margin-right: 7%; 
 
\t margin-top: 8px; 
 
\t /*padding-right: 1%;*/ 
 
\t float: right; 
 
\t -webkit-transform: rotate(0deg); 
 
\t -moz-transform: rotate(0deg); 
 
\t -o-transform: rotate(0deg); 
 
\t transform: rotate(0deg); 
 
\t -webkit-transition: .5s ease-in-out; 
 
\t -moz-transition: .5s ease-in-out; 
 
\t -o-transition: .5s ease-in-out; 
 
\t cursor: pointer; 
 
} 
 

 
#nav-icon3 span { 
 
\t display: block; 
 
\t position: absolute; 
 
\t height: 4px; 
 
\t width: 100%; 
 
\t background: #8c8c8c; 
 
\t border-radius: 6px; 
 
\t opacity: 1; 
 
\t left: 0; 
 
    -webkit-transform: rotate(0deg); 
 
    -moz-transform: rotate(0deg); 
 
    -o-transform: rotate(0deg); 
 
    transform: rotate(0deg); 
 
    -webkit-transition: .25s ease-in-out; 
 
    -moz-transition: .25s ease-in-out; 
 
    -o-transition: .25s ease-in-out; 
 
    transition: .25s ease-in-out; 
 
} 
 

 
#nav-icon3 span:nth-child(1) { 
 
\t top: 0px; 
 
} 
 

 
#nav-icon3 span:nth-child(2), #nav-icon3 span:nth-child(3) { 
 
\t top: 10px; 
 
} 
 

 
#nav-icon3 span:nth-child(4) { 
 
\t top: 20px; 
 
} 
 

 
#nav-icon3.open span:nth-child(1) { 
 
\t top: 10px; 
 
\t width: 0%; 
 
\t left: 50%; 
 
} 
 

 
#nav-icon3.open span:nth-child(2) { 
 
\t -webkit-transform: rotate(45deg); 
 
\t -moz-transform: rotate(45deg); 
 
\t -o-transform: rotate(45deg); 
 
\t transform: rotate(45deg); 
 
} 
 

 
#nav-icon3.open span:nth-child(3) { 
 
\t -webkit-transform: rotate(-45deg); 
 
\t -moz-transform: rotate(-45deg); 
 
\t -o-transform: rotate(-45deg); 
 
\t transform: rotate(-45deg); 
 
} 
 

 
#nav-icon3.open span:nth-child(4) { 
 
\t top: 10px; 
 
\t width: 0%; 
 
\t left: 50%; 
 
} 
 

 
.topnav { 
 
    display: none; 
 
} 
 

 
.topnav.responsive { 
 
\t display: block; 
 
\t clear: both; 
 
\t padding: 0; 
 
\t height: 160px; 
 
} 
 

 
ul.topnav.responsive { 
 
\t list-style: none; 
 
\t font-family: 'Raleway', 'sans-serif'; 
 
\t float: left; 
 
\t margin-left: 7%; 
 
\t /*padding-left: 2%;*/ 
 
\t margin-top: 0; 
 
\t width: 85%; 
 
\t margin-bottom: 0; 
 
} 
 

 
ul.topnav.responsive li { 
 
\t padding-top: 16px; 
 
\t padding-bottom: 16px; 
 
\t border-bottom: 1px solid #c6c6c6; 
 
} 
 

 
ul.topnav.responsive li a { 
 
\t text-decoration: none; 
 
\t color: #8c8c8c; 
 
} 
 

 
ul.topnav.responsive li a:hover { 
 
\t color: #7EBEA3; 
 
} 
 

 
.grid { 
 
    overflow: hidden; 
 
    box-sizing: border-box; 
 
    margin: 0 auto !important; 
 
} 
 

 
.grid-item img { 
 
    width: 250px; 
 
    float: left; 
 
    padding: 0; 
 
}
<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <meta charset="UTF-8"> 
 
\t \t <meta name="viewport" content="width=device-width, initial scale=1.0"> 
 
\t \t <title>Gabriella Farfan</title> 
 
\t \t <link href="https://fonts.googleapis.com/css?family=Lobster|Raleway" rel="stylesheet"> 
 
\t \t <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> 
 
\t \t <link rel="stylesheet" href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css"> 
 
\t \t <link rel="stylesheet" type="text/css" href="css/style.css"> 
 
\t \t <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
\t \t <script src="js/main.js"></script> 
 
\t </head> 
 

 
<body> 
 
<div class="header"> 
 
\t \t <h1>Gabriella Farfan</h1> 
 
\t \t \t <div id="nav-icon"> 
 
\t \t \t \t <div id="nav-icon3"> 
 
\t \t \t \t \t <a id="nav-icon3" onclick="myFunction();"> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t </a> 
 
\t \t \t \t </div> 
 
\t \t \t </div> 
 

 
\t \t <ul class="topnav" id="myTopnav"> 
 
\t \t \t <li> 
 
\t \t \t \t <a href="#">Work</a> 
 
\t \t \t </li> 
 
\t \t \t <li> 
 
\t \t \t \t <a href="About.html">About Me</a> 
 
\t \t \t </li> 
 
\t \t \t <li style="border-bottom: none"> 
 
\t \t \t \t <a href="#">Contact</a> 
 
\t \t \t </li> 
 
\t \t </ul> 
 
\t </div> 
 
    
 
<div class="grid"> 
 
    <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_20912016.jpg"></div> 
 
    <div class="grid-item"><img src="https://previews.123rf.com/images/kotokomi/kotokomi1511/kotokomi151100206/48637357-Smiles-are-always-in-fashion-Inspirational-quote-handwritten-with-black-ink-and-brush-custom-letteri-Stock-Vector.jpg"></div> 
 
    <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_52210298.jpg"></div> 
 
    <div class="grid-item"><img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRBlJjT5wpALRmHrOM3kLERHc01mw0GSDuMKheUGRCT2-rYN8_WfQ"></div> 
 
    <div class="grid-item"><img src="https://4.bp.blogspot.com/-dihnACz_au0/UJlZxIsDIWI/AAAAAAAAGPE/F4u3xcep2e4/s1600/stock-illustrations-on-etsy.jpg"></div> 
 
    <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_88472599.jpg"></div> 
 
    <div class="grid-item"><img src="https://pbs.twimg.com/media/C9mly1dUwAAdTir.jpg"></div> 
 
    <div class="grid-item"><img src="http://www.elliedujour.com/wp-content/uploads/2017/03/2040070-1484093522-1.640x0c.jpg"></div> 
 
    <div class="grid-item"><img src="http://media.istockphoto.com/vectors/cute-cartoon-girl-vector-id528487686"></div> 
 
    
 
</div> 
 
    
 
    </body> 
 
    
 
</html>

回答

0

我设法在砌体加载的图像,以使一个不错的顺序动画,codepenScrollReveal.js插件帮助达到了效果。

function myFunction() { 
 
    \t var x = document.getElementById("myTopnav"); 
 
    \t if (x.className === "topnav") { 
 
     \t x.className += " responsive"; 
 
    \t } else { 
 
     \t x.className = "topnav"; 
 
    \t } 
 
\t } 
 

 
$(document).ready(function() { 
 
    $('#nav-icon3').on('click', function() { 
 
    $(this).toggleClass('open'); 
 
    }); 
 
}); 
 

 
$('#grid').masonry({ 
 
    // options 
 
    itemSelector: '.grid-item', 
 
    columnWidth: 220, 
 
    isFitWidth: true 
 
}); 
 

 
// window.sr = ScrollReveal({ duration: 1000 }); 
 
// sr.reveal('.foo', 80); 
 

 
window.sr = ScrollReveal(); 
 
sr.reveal('.foo', { duration: 1000 }, 50);
html, body { 
 
\t padding: 0; 
 
\t margin: 0; 
 
\t width: 100%; 
 
\t height: 100%; 
 
\t font-size: 1rem; 
 
} 
 

 
.header { 
 
\t background-color: #FFF; 
 
\t width: 100%; 
 
\t margin: 0px auto; 
 
\t display: block; 
 
\t top: 0; 
 
\t margin-top: 7%; 
 
\t height: 80px; 
 
} 
 

 
h1 { 
 
\t margin-left: 5%; 
 
\t padding-left: 1%; 
 
\t font-family: 'Lobster', cursive; 
 
\t margin-top: 0; 
 
\t float: left; 
 
\t margin-bottom: 0; 
 
\t color: #D18E8F; 
 
} 
 

 
#nav-icon { 
 
\t width: 30px; 
 
\t height: 30px; 
 
    display: block; 
 
\t position: relative; 
 
\t margin-right: 7%; 
 
\t margin-top: 8px; 
 
\t /*padding-right: 1%;*/ 
 
\t float: right; 
 
\t -webkit-transform: rotate(0deg); 
 
\t -moz-transform: rotate(0deg); 
 
\t -o-transform: rotate(0deg); 
 
\t transform: rotate(0deg); 
 
\t -webkit-transition: .5s ease-in-out; 
 
\t -moz-transition: .5s ease-in-out; 
 
\t -o-transition: .5s ease-in-out; 
 
\t cursor: pointer; 
 
} 
 

 
#nav-icon3 span { 
 
\t display: block; 
 
\t position: absolute; 
 
\t height: 4px; 
 
\t width: 100%; 
 
\t background: #8c8c8c; 
 
\t border-radius: 6px; 
 
\t opacity: 1; 
 
\t left: 0; 
 
    -webkit-transform: rotate(0deg); 
 
    -moz-transform: rotate(0deg); 
 
    -o-transform: rotate(0deg); 
 
    transform: rotate(0deg); 
 
    -webkit-transition: .25s ease-in-out; 
 
    -moz-transition: .25s ease-in-out; 
 
    -o-transition: .25s ease-in-out; 
 
    transition: .25s ease-in-out; 
 
} 
 

 
#nav-icon3 span:nth-child(1) { 
 
\t top: 0px; 
 
} 
 

 
#nav-icon3 span:nth-child(2), #nav-icon3 span:nth-child(3) { 
 
\t top: 10px; 
 
} 
 

 
#nav-icon3 span:nth-child(4) { 
 
\t top: 20px; 
 
} 
 

 
#nav-icon3.open span:nth-child(1) { 
 
\t top: 10px; 
 
\t width: 0%; 
 
\t left: 50%; 
 
} 
 

 
#nav-icon3.open span:nth-child(2) { 
 
\t -webkit-transform: rotate(45deg); 
 
\t -moz-transform: rotate(45deg); 
 
\t -o-transform: rotate(45deg); 
 
\t transform: rotate(45deg); 
 
} 
 

 
#nav-icon3.open span:nth-child(3) { 
 
\t -webkit-transform: rotate(-45deg); 
 
\t -moz-transform: rotate(-45deg); 
 
\t -o-transform: rotate(-45deg); 
 
\t transform: rotate(-45deg); 
 
} 
 

 
#nav-icon3.open span:nth-child(4) { 
 
\t top: 10px; 
 
\t width: 0%; 
 
\t left: 50%; 
 
} 
 

 
.topnav { 
 
    display: none; 
 
} 
 

 
.topnav.responsive { 
 
\t display: block; 
 
\t clear: both; 
 
\t padding: 0; 
 
\t height: 160px; 
 
} 
 

 
ul.topnav.responsive { 
 
\t list-style: none; 
 
\t font-family: 'Raleway', 'sans-serif'; 
 
\t float: left; 
 
\t margin-left: 7%; 
 
\t /*padding-left: 2%;*/ 
 
\t margin-top: 0; 
 
\t width: 85%; 
 
\t margin-bottom: 0; 
 
} 
 

 
ul.topnav.responsive li { 
 
\t padding-top: 16px; 
 
\t padding-bottom: 16px; 
 
\t border-bottom: 1px solid #c6c6c6; 
 
} 
 

 
ul.topnav.responsive li a { 
 
\t text-decoration: none; 
 
\t color: #8c8c8c; 
 
} 
 

 
ul.topnav.responsive li a:hover { 
 
\t color: #7EBEA3; 
 
} 
 

 
#grid { 
 
    overflow: hidden; 
 
/* box-sizing: border-box; */ 
 
    margin: 0 auto !important; 
 
    width: 100%; 
 
} 
 

 
.grid-item { 
 
    width: 220px; 
 
    float: left; 
 
    overflow: hidden; 
 
} 
 

 
.grid-item img { 
 
    display: block; 
 
    float: left; 
 
    width: 100%; 
 
/* -moz-transition: all 0.3s; 
 
    -webkit-transition: all 0.3s; 
 
    transition: all 0.3s; */ 
 
    
 
}
<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <meta charset="UTF-8"> 
 
\t \t <meta name="viewport" content="width=device-width, initial scale=1.0"> 
 
\t \t <title>Gabriella Farfan</title> 
 
\t \t <link href="https://fonts.googleapis.com/css?family=Lobster|Raleway" rel="stylesheet"> 
 
\t \t <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> 
 
\t \t <link rel="stylesheet" href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css"> 
 
\t \t <link rel="stylesheet" type="text/css" href="css/style.css"> 
 
    </head> 
 
    
 
    <body> 
 
<div class="header"> 
 
\t \t <h1>Gabriella Farfan</h1> 
 
\t \t \t <div id="nav-icon"> 
 
\t \t \t \t <div id="nav-icon3"> 
 
\t \t \t \t \t <a id="nav-icon3" onclick="myFunction();"> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t \t <span></span> 
 
\t \t \t \t \t </a> 
 
\t \t \t \t </div> 
 
\t \t \t </div> 
 

 
\t \t <ul class="topnav" id="myTopnav"> 
 
\t \t \t <li> 
 
\t \t \t \t <a href="#">Work</a> 
 
\t \t \t </li> 
 
\t \t \t <li> 
 
\t \t \t \t <a href="About.html">About Me</a> 
 
\t \t \t </li> 
 
\t \t \t <li style="border-bottom: none"> 
 
\t \t \t \t <a href="#">Contact</a> 
 
\t \t \t </li> 
 
\t \t </ul> 
 
\t </div> 
 

 
    <div id="grid"> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_20912016.jpg"></div> 
 
     </div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://previews.123rf.com/images/kotokomi/kotokomi1511/kotokomi151100206/48637357-Smiles-are-always-in-fashion-Inspirational-quote-handwritten-with-black-ink-and-brush-custom-letteri-Stock-Vector.jpg"></div> 
 
     </div> 
 
     <div class="foo"><div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_52210298.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRBlJjT5wpALRmHrOM3kLERHc01mw0GSDuMKheUGRCT2-rYN8_WfQ"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://4.bp.blogspot.com/-dihnACz_au0/UJlZxIsDIWI/AAAAAAAAGPE/F4u3xcep2e4/s1600/stock-illustrations-on-etsy.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_88472599.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://pbs.twimg.com/media/C9mly1dUwAAdTir.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="http://www.elliedujour.com/wp-content/uploads/2017/03/2040070-1484093522-1.640x0c.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="http://media.istockphoto.com/vectors/cute-cartoon-girl-vector-id528487686"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_20912016.jpg"></div> 
 
     </div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://previews.123rf.com/images/kotokomi/kotokomi1511/kotokomi151100206/48637357-Smiles-are-always-in-fashion-Inspirational-quote-handwritten-with-black-ink-and-brush-custom-letteri-Stock-Vector.jpg"></div> 
 
     </div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_52210298.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRBlJjT5wpALRmHrOM3kLERHc01mw0GSDuMKheUGRCT2-rYN8_WfQ"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://4.bp.blogspot.com/-dihnACz_au0/UJlZxIsDIWI/AAAAAAAAGPE/F4u3xcep2e4/s1600/stock-illustrations-on-etsy.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://www.istockphoto.com/resources/images/IllustrationsLanding/img_88472599.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="https://pbs.twimg.com/media/C9mly1dUwAAdTir.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="http://www.elliedujour.com/wp-content/uploads/2017/03/2040070-1484093522-1.640x0c.jpg"></div></div> 
 
     <div class="foo"> 
 
     <div class="grid-item"><img src="http://media.istockphoto.com/vectors/cute-cartoon-girl-vector-id528487686"></div></div> 
 
    </div> 
 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script src="https://unpkg.com/scrollreveal/dist/scrollreveal.min.js"></script> 
 
<script src="https://unpkg.com/[email protected]/dist/masonry.pkgd.js"></script> 
 

 
</body> 
 

 
</html>

1

我认为最好的办法是检查是否加载图像,然后显示它。

这可能与imagesLoadedLazyLoad插件。

简单的例子与imagesLoaded插件:

CSS(添加opacitytransition到图像)

.grid-item img { 
    width: 250px; 
    float: left; 
    padding: 0; 
    opacity: 0; 
    -webkit-transition: opacity .5s ease; 
    -moz-transition: opacity .5s ease; 
    -o-transition: opacity .5s ease; 
    transition: opacity .5s ease; 
} 

使用imagesLoaded插件(CDN https://unpkg.com/[email protected]/imagesloaded.pkgd.min.js

$(".grid").imagesLoaded() 
    .progress(function(instance, image) { 
    var $item = $(image.img); 

    $item.css({ 
     "opacity": "1" 
    }); 
    }); 

叉代码:Codepen

有轻微的随机过渡延迟效果:Codepen

随着警报:):Codepen

-

我希望这是帮助你。

+0

谢谢你,我想你的答案帮助一点。我发现一个文章,做了我想要的加载效果,但包括一个按钮来显示图像[链接](http://codepen.io/desandro/pen/yogHI)我想知道我可以做同样的事情,但摆脱按钮和onclick功能。我不擅长JavaScript。 – user7311741

+0

对于图像,您只需要类似的过渡效果,或向下滚动时加载图像? – leusrox

+0

这两个都会很好,我有点设法在这里做过渡效果https://codepen.io/GabriellaFarfan/pen/PmWWpm,但是当我调整窗口的大小时,所有图像都浮到底部 – user7311741