【Illustrator・Ai】イラレの手書きクレヨン風の自作ブラシで、ひよこのキャラクターを作ってみた。
まず、”ぐにゃっと切り替わる”とはどういうことかというと、下のサンプルのように歪んで切り替わるスライドの事を指します。
そして、これを作るにあたりWebGLを少し理解することが必要になってくるのですが、「WebGL」とはなんぞや…?について、こちらの記事「【WebGL / GLSL】デザイナーにモテるためのWebGL入門(概念編)」にとても分かりやすく載っていました!一番下の参考記事も読むとさらに分かりやすいです。
この仕組みを頭にいれつつ、今回はこのスライドの作り方のみ簡単に記載します。
https://codepen.io/ReGGae/pen/bmyYEj
「Distortion Hover Effect」の仕組みがslide用に公開されているものと思われます。このコードは、マウスホイールを下に動かした際に、画像が縦にスライドする仕様になっているので、少しカスタムして作ります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<div class="wapper_img"> <div class="slider js-slider"> <div class="slider__inner js-slider__inner"></div> <div class="slide js-slide"></div> <div class="slide js-slide"></div> <div class="slide js-slide"></div> <nav class="slider__nav js-slider__nav"> <div class="slider-bullet js-slider-bullet"> <span class="slider-bullet__text js-slider-bullet__text">01</span> <span class="slider-bullet__line js-slider-bullet__line"></span> </div> <div class="slider-bullet js-slider-bullet"> <span class="slider-bullet__text js-slider-bullet__text">02</span> <span class="slider-bullet__line js-slider-bullet__line"></span> </div> <div class="slider-bullet js-slider-bullet"> <span class="slider-bullet__text js-slider-bullet__text">03</span> <span class="slider-bullet__line js-slider-bullet__line"></span> </div> </nav> <div class="scroll js-scroll">Scroll</div> </div> </div> |
1 2 |
<script src='https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js'></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/109/three.min.js'></script> |
TweenMaxとthree.jsを読み込みます。
画像のみ使用し、ナビゲーションや、スクロールマークの箇所は不要なので、cssで非表示にしてしまいます。
1 2 3 4 5 6 7 8 9 |
<style> .wapper_img .slider { height: 230px; } .slider__nav.js-slider__nav, .scroll { display: none; } </style> |
HTMLから要素ごと削除する場合、JSも変更する必要があるのでここでは割愛します。
まず、先ほどのお手本コードのJSをまるっと持ってきます。
今回、マウスホイールでスライドではなく、サイトにアクセスするとautoplayでスライドし続けるようにしたかったので、一部だけ以下のように書き換えます。
1 2 3 4 5 |
listeners() { //window.addEventListener('wheel', this.nextSlide, { passive: true }) //wheelでスライドではなく、5秒ごとにスライドに変更 setInterval(this.nextSlide, 5000, { passive: true }); } |
以下の箇所はスライドさせる画像に変更してください。また画像の枚数に合わせてHTMLも変更します。
1 2 3 4 5 |
this.images = [ 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/58281/bg1.jpg', 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/58281/bg2.jpg', 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/58281/bg3.jpg' ] |
ここまでで、スライドが完成します。
サンプルでは、ぐにゃっとさせる模様に「https://s3-us-west-2.amazonaws.com/s.cdpn.io/58281/rock-_disp.png」の画像を挟んでいますが、この画像を変更したり、各値(ease: Expo.easeInOut)等を変更することで独自の効果を演出することが可能になります。
参考:【WebGL / GLSL】シェーダー100本ノック 〜 ディストーションエフェクト
Miki Kohinata
大学時代、将来独立することを決めエンジニアの道へ。就職したIT企業で藤本と運命的に出会いKOHIMOTO設立。目指すのは人の心に寄り添えるエンジニア。人生のテーマソングはWeekend by 5lack。
PICK UP