<ul class="scroll-anim-19" id="js-scroll-anim-19">
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1000/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 1"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1000/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1001/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 2"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1001/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1002/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 3"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1002/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1003/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 4"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1003/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1004/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 5"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1004/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1005/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 6"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1005/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1006/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 7"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1006/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1012/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 8"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1012/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1008/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 9"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1008/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1009/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 10"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1009/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1010/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 11"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1010/400/200" /></a></li>
<li><a class="scroll-anim-19__item" href="https://picsum.photos/id/1011/800/400" data-lightbox="SCROLL ANIM 19" data-title="Image 12"><img class="scroll-anim-19__img" src="https://picsum.photos/id/1011/400/200" /></a></li>
</ul>
ul.scroll-anim-19#js-scroll-anim-19
each item in items
li
a.scroll-anim-19__item(href=item.imgModal, data-lightbox='SCROLL ANIM 19', data-title=item.title)
img.scroll-anim-19__img(src=item.img)
{
"items": [
{
"img": "https://picsum.photos/id/1000/400/200",
"imgModal": "https://picsum.photos/id/1000/800/400",
"title": "Image 1"
},
{
"img": "https://picsum.photos/id/1001/400/200",
"imgModal": "https://picsum.photos/id/1001/800/400",
"title": "Image 2"
},
{
"img": "https://picsum.photos/id/1002/400/200",
"imgModal": "https://picsum.photos/id/1002/800/400",
"title": "Image 3"
},
{
"img": "https://picsum.photos/id/1003/400/200",
"imgModal": "https://picsum.photos/id/1003/800/400",
"title": "Image 4"
},
{
"img": "https://picsum.photos/id/1004/400/200",
"imgModal": "https://picsum.photos/id/1004/800/400",
"title": "Image 5"
},
{
"img": "https://picsum.photos/id/1005/400/200",
"imgModal": "https://picsum.photos/id/1005/800/400",
"title": "Image 6"
},
{
"img": "https://picsum.photos/id/1006/400/200",
"imgModal": "https://picsum.photos/id/1006/800/400",
"title": "Image 7"
},
{
"img": "https://picsum.photos/id/1012/400/200",
"imgModal": "https://picsum.photos/id/1012/800/400",
"title": "Image 8"
},
{
"img": "https://picsum.photos/id/1008/400/200",
"imgModal": "https://picsum.photos/id/1008/800/400",
"title": "Image 9"
},
{
"img": "https://picsum.photos/id/1009/400/200",
"imgModal": "https://picsum.photos/id/1009/800/400",
"title": "Image 10"
},
{
"img": "https://picsum.photos/id/1010/400/200",
"imgModal": "https://picsum.photos/id/1010/800/400",
"title": "Image 11"
},
{
"img": "https://picsum.photos/id/1011/400/200",
"imgModal": "https://picsum.photos/id/1011/800/400",
"title": "Image 12"
}
]
}
$BLOCK_NAME: '.scroll-anim-19';
// 変数
$duration_default: 0.7s;
#{ $BLOCK_NAME } {
display: flex;
flex-wrap: wrap;
& > li {
width: 50%;
opacity: 0;
@include Mq(md) {
width: calc(100% / 3);
}
@include Mq(lg) {
width: 25%;
}
}
&__item {
display: block;
overflow: hidden;
}
&__img {
width: 100%;
filter: grayscale(1);
transition: all $duration_default;
@at-root #{ $BLOCK_NAME }__item:hover & {
filter: grayscale(0);
transform: scale(1.1);
}
}
}
'use strict';
import $ from 'jquery';
import 'lightbox2';
import { gsap } from 'gsap';
import { ScrollTrigger } from 'gsap/ScrollTrigger';
gsap.registerPlugin(ScrollTrigger);
export const scrollAnim19 = () => {
const anim = new Anim19('js-scroll-anim-19');
anim.init();
}
class Anim19 {
el: HTMLElement;
constructor(elId: string) {
this.el = document.getElementById(elId);
if (!this.el) return;
}
/**
* 初期化
*/
init(): void {
if (!this.el) return;
this.scrollHandler();
}
/**
* ギャラリー表示
*/
animate(): void {
const elWidth = this.el.clientWidth;
const itemWidth = this.el.children[0].clientWidth - 1;
const colNum = Math.floor(elWidth / itemWidth);
const rowNum = Math.ceil(this.el.children.length / colNum);
gsap.to(this.el.children, {
duration: 2,
opacity: 1,
stagger: {
grid: [rowNum, colNum],
each: .1,
},
});
}
/**
* スクロール連動のイベント設定
*/
scrollHandler(): void {
ScrollTrigger.create({
trigger: this.el,
start: 'top 70%',
onEnter: self => {
this.animate();
self.kill();
},
});
}
}
No notes defined.