rgbKineticSliderがカッコいい!!
こんにちは!
台湾でエンジニアをしているゆーたです!
今回はたまたま検索で見つけたrgbKineticSliderがカッコよかったので記事にしてみました!
まずはrgbKineticSliderがどんなものかをみてみます。
マウスの動きに合わせて波打つように背景が動きます。
めっちゃカッコいいですよね!
作成するには以下のGitHubコードを参考に行います。
概要欄には使い方と、プラグインの詳細が細かく記載されています。
それぞれ細かくみてみます。
コード内の内容
色々触ってみたのですが、
コード内は以下のような感じで制御されています。
※cssや導入するJSの内容は省略します。
//html内
<div id="rgbKineticSlider" class="rgbKineticSlider"></div>
<nav>
<a href="#" class="main-nav prev" data-nav="previous">Prev</a>
<a href="#" class="main-nav next" data-nav="next">Next</a>
</nav>
htmlではid=rgbKineticSliderというものに対してJSが効くように設定されています。navタグのスライダーボタンも作成することが可能です。
//JS内
const images = [
"images/image-1.jpg",
"images/image-2.jpg",
"images/image-3.jpg",
];
const texts = [["FLOWERS"], ["MOUNTAINS"], ["FOREST"]];
const slider = new rgbKineticSlider({
slideImages: images,
itemsTitles: texts,
backgroundDisplacementSprite: "images/map-9.jpg",
cursorDisplacementSprite: "images/displace-circle.png",
cursorImgEffect: true,
cursorTextEffect: false,
cursorScaleIntensity: 0.6,
cursorMomentum: 0.2,
swipe: true,
swipeDistance: window.innerWidth * 0.35,
swipeScaleIntensity: 2,
slideTransitionDuration: 1.2,
transitionScaleIntensity: 30,
transitionScaleAmplitude: 160,
nav: true,
navElement: ".main-nav",
imagesRgbEffect: false,
imagesRgbIntensity: 0.9,
navImagesRgbIntensity: 80,
textsDisplay: true,
textTitleSize: 130,
textsTiltEffect: true,
googleFonts: ["Playfair Display: 700"],
textsRgbEffect: true,
textsRgbIntensity: 1,
});
JS内は以上のようになっています。
それぞれの意味としては以下の通りです。
const images =
[ "images/image-1.jpg", "images/image-2.jpg", "images/image-3.jpg", ];
スライドしたい画像を配列に入れ、変数imagesに格納する。
const texts = [["FLOWERS"], ["MOUNTAINS"], ["FOREST"]];
画像と同じでスライドしたいテキストを配列に入れ変数textsに格納する。
それぞれのオプションについて
slideImages: images:
表示するスライドの画像のリストを指定します。
itemsTitles: texts:
各スライドに関連付けられたタイトルまたはテキストを指定します。
backgroundDisplacementSprite: "画像ファイルURL":
背景の変位(ディストーション)効果を制御するためのスプライト画像のパスを指定します。
cursorDisplacementSprite: "画像ファイルURL":
カーソルの変位効果を制御するためのスプライト画像のパスを指定します。
cursorImgEffect: true:
カーソルが画像の上に乗った時の変位効果の有効/無効を指定します。
cursorTextEffect: false:
カーソルがテキストの上に乗った時の変位効果の有効/無効を指定します。
cursorScaleIntensity: 0.6:
カーソルの変位のスケールの強度を設定します。
cursorMomentum: 0.2:
カーソルの動きのモーメンタム(遅延)を設定します。
swipe: true:
スワイプ機能の有効/無効を指定します。
swipeDistance: window.innerWidth * 0.35:
スライドを変更するためのスワイプの最小距離を指定します。
swipeScaleIntensity: 2:
スワイプ時の変位スケールの強度を設定します。
slideTransitionDuration: 1.2:
スライド間の遷移の持続時間を秒単位で設定します。
transitionScaleIntensity: 30:
スライドの遷移時の変位スケールの強度を設定します。
transitionScaleAmplitude: 160:
スライドの遷移時の変位スケールの振幅を設定します。
nav: true:
ナビゲーションの有効/無効を指定します。
navElement: ".main-nav":
ナビゲーションとして使用する要素のセレクタを指定します。
imagesRgbEffect: false:
画像のRGB効果の有効/無効を指定します。
imagesRgbIntensity: 0.9:
画像のRGB効果の強度を設定します。
navImagesRgbIntensity: 80:
ナビゲーション画像のRGB効果の強度を設定します。
textsDisplay: true:
テキストの表示/非表示を指定します。
textTitleSize: 130:
テキストタイトルのサイズを指定します。
textsTiltEffect: true:
テキストの傾き効果の有効/無効を指定します。
googleFonts: ["Playfair Display: 700"]:
使用するGoogle Fontsを指定します。
textsRgbEffect: true:
テキストのRGB効果の有効/無効を指定します。
textsRgbIntensity: 1:
テキストのRGB効果の強度を設定します。
ざっとこんな感じで色んなオプションを追加することが出来るようです。
アレンジしてサイトに導入してみたらおもしろそうですね!
スライダーを自動にしたい場合は以下のようにJSを追記したらできました!
document.addEventListener("DOMContentLoaded", function() {
let waitingDuration = 2000;
let counter = 0;
let clickNextBtn = setInterval(function() {
let nextBtn = document.querySelectorAll(".main-nav")[1];
if (counter == 0) {
counter += 1;
} else {
nextBtn.click();
}
}, waitingDuration);
});
こんな感じでできました!
TwitterやInstagramやってます!
仕事はフリーで主にweb制作をしております。
台湾好きや興味がある人とお友達になりたいです。
またweb制作の仕事も随時募集中なので、
ポートフォリオを見ていただけると嬉しいです!
DMお待ちしております!
Twitter:@trizolyuta
Instagram:@yuta208817
portoforio:https://nakamayuuta.sakura.ne.jp/
大阪在住の29歳。web制作会社勤務。noteを通してたくさんの出会いを作っていきたいです。台湾が大好きで中国語勉強中。日台夫婦。日々の挑戦の記録や、社会の生きづらさ、台湾のことなどを書いていこうと思います。2023年台湾に移住予定です。