「少しのコードでこんなにも… CSSの小技」の続編というか、CSSでも大体のことはできるようになってきましたが、jQueryを利用することにより、よりcoolなページが作れます。
今まではできるだけCSSだけで仕上げてきましたが、よく見かけるjQueryは備忘録にしておいて、いつでもすぐに使えたら便利ですよね。ってことで、これまで使用したjQueryをまとめてみました。
jQueryの公式サイト からjqueryをダウンロードして使うのもいいけれど、CDN(Contents Delivery Network)を利用する方が便利かもしれない。実際には.minのついた圧縮版の方がいいでしょう。記述は<head>内にしておきます。
ダウンロードして使う場合はそのファイルを指定する
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
CDN(Contents Delivery Network)を利用する場合(↓どちらか一つで良い)
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
スクロールエフェクトとか視差効果(パララックス)で検索すると、幾つか素晴らしいサイトを見つけることができます。ページをスクロールして指定した箇所が表示されるとイベントを開始させてくれるinview.jsというjQueryのプラグインがあります。
Github : に用意されている公式の配布サイトからプラグインのファイルを入手しましょう。入手したファイル[jquery.inview.js]または[jquery.inview.min.js]のどちらかをHTMLの適当な箇所で読み込みます。
■コード:
//css
.scroll {
transform: translate(0,50px);
opacity: 0;
}
.effect {
transform: translate(0,0);
transition: .8s;
opacity: 1.0;
}
//script
$(function() {
$('.scroll').on('inview', function(event, isInView, visiblePartX, visiblePartY) {
if(isInView){ //表示領域に入った時
$(this).stop().addClass('effect');
}
else{ //表示領域から出た時
$(this).stop().removeClass('effect');
}
});
});
イベントを設定する際、コールバック関数の引数で「isInView」「visiblePartX」「visiblePartY」の3つを指定できます。
コールバック*関数の説明を記しておきましたが、jsで思い通りに書くのはうまくできなかったので、cssで対応させました。'.scroll'というスタイルに対して'effect'というスタイルを当てるという感じです。
ページのトップに移動するときは、別途それだけjsで書いていましたが、ページ内を何箇所もいろいろ移動するようなサイトを作った時、この「jquery.smoothScroll」というプラグインが便利でした。(プラグイン本体のダウンロード)
デフォルトでは a 要素の href 属性にスクロール先の ID を書きますけど、何らかの理由で他の属性を使いたいときには、そういう指定も用意されています。
まずプラグイン本体を読み込ませたら、</body> の直前あたりで下記のような感じで書きます。
<script>
$('a').smoothScroll({
speed: 1000, //mm秒
offset: 40, //上からのアキ (px)
easing: 'swing', //動き方の指定
});
</script>
これでページ内リンクがスムーズスクロールになります。オプションを渡すことで、カスタマイズできるようになってます。
スクロールのスピードはミリ秒で指定、移動先のオフセットも指定できます。easing(動き方)は linear か swing でデフォルトは linear になっていました。
テスト)「まずは準備から」に移動
「表示されたタイミングでアニメーションを開始」に移動