-
HTML/CSS
- 初心者
- 教材
- 無料
【無料】実務のスキルが身に付くコーディング教材(初心者編)
jQueryで動きのついたサイトへ
jQuery を全く知らない方は、下記の記事に目を通してみてください。何ができるか・どのような場面で使うのか詳しく書かれています。
今回、jQuery を導入しているのは下記の3箇所です。
- メインビジュアルのコンテンツがじわっと出てくる動き
- スクロールする度にコンテンツがふわっと表示される動き
- フッターの「TOPへ」を押すとゆっくりページの一番上へスクロールされる動き
まずは、それぞれデモサイトで動きを確認してください。
jQueryを導入
jQueryを使えるように準備を行います。
この記事では、jQueryをCDNで利用する方法で行います。CDNは、HTMLにコードを一行追加するだけでjQueryが使用できるため非常に便利です。
下記がそのコードです。bodyの閉じタグ(</body>)の直前に記述してください。1行目はCDNでjQueryを読み込むコード、2行目はjsフォルダ内のmain.jsを読み込むコードです。
<!-- jQueryの読み込み -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="./js/main.js"></script>
</body>
これで jQuery が使用できるようになりました!
jQueryの解説
メインビジュアルのフェードイン+じわっと
メインビジュアルで使用しているフェードイン+じわっとした動きを解説します。
完成したもの
// じわっとフェードイン
$(window).on('load', function (){
$(".mainvisual .wrapper").addClass('blur');
});
/* じわっとフェードイン(jQuery用) */
.mainvisual .wrapper {
opacity: 0;
transition: all 1000ms;
filter: blur(10px);
}
.mainvisual .wrapper.blur {
opacity: 1;
filter: blur(0);
}
<header class="header">
<section class="mainvisual">
<div class="wrapper">
<div class="catchcopy">
<h1>WP-LOAD</h1>
<p>
無料で基本を学べる<br />
プログラミング学習サイト
</p>
<div class="button button__border">
<a href="https://wp-load.in/">WP-LOADを見る</a>
</div>
</div>
<img src="./images/mainvisual.svg" alt="パソコン作業のアイコン" />
</div>
</section>
</header>
jQueryを1行ずつ解説
$(window).on('load', function (){
});
$(window).on('load', function (){});
を使用する事で、ブラウザがWebサイトを読み込み完了した後にJavaScriptが発火します。
JavaScriptを発火させるタイミングは色々と複雑なので、今回は特に気にせず上記の記述で大丈夫です!
$(".mainvisual .wrapper").addClass('blur');
.mainvisual .wrapperに.addClass('blur');
のメソッドでblur
というクラス名を追加します。
まとめると、サイトの読み込みが完了したら.mainvisualの中の.wrapperにblur
というクラスが追加されるという意味になります。
CSSを解説
CSSは「blur」というクラスが付く前とクラスが付いた後で記述が違います。
流れとしては、非表示 → ぼやけて表示 → はっきりと表示です。
下記はクラス「blur」が追加される前の記述です。
/* じわっとフェードイン */
.mainvisual .wrapper {
opacity: 0;
transition: all 1000ms;
filter: blur(10px);
}
クラス「blur」が追加された後の記述です。
.mainvisual .wrapper.blur {
opacity: 1;
filter: blur(0);
}
スクロールフェードイン
このスクロールフェードインは、印象を与えやすいため利用されることが多い動きです。スクロールする度に、コンテンツがフェードインします。
完成したもの
// スクロールでフェードイン
$(window).on('scroll', function () { // スクロールする度にjsが発火
$(".fade-in").each(function () { // .fade-inに対して繰り返し処理を行う
let topPosition = $(this).offset().top; // .fade-inからブラウザ上部までの距離を取得
let scroll = $(window).scrollTop(); // スクロール量を取得
let windowHeight = $(window).height(); // 表示中のブラウザの高さを取得
if (scroll > topPosition - windowHeight) { // ブラウザに要素が表示された時
$(this).addClass("scroll"); // .fade-inに.scrollを付与
}
});
});
$(window).scroll(); // リロードしてもフェードインが行われる
/* フェードイン(jQuery用) */
.fade-in {
opacity: 0;
transform: translateY(100px);
/* 上に動くに動く */
transition: all 1500ms;
/* アニメーションの時間 */
}
.scroll {
opacity: 1;
transform: translateY(0);
}
HTMLは「about」「attention」「writer」のクラスが付いている各section
タグにfade-in
というクラス名を追加しています。
<main class="main">
<section class="about fade-in">
<h2>WP-LOADについて</h2>
<div class="content">
<img
src="./images/community.svg"
alt="コミュニティ"
class="content-image"
/>
<div class="content-text">
<h3>チームで運営しているコミュニティ</h3>
<p>
WP-LOADは複数人のWeb制作・プログラマーが集まって出来ているWebメディアです。<br />
これからプログラミングを学びたい方や、既に実務で取り組まれている方でオンラインコミュニティを作り、チームで活動をしています。<br />
チームで活動をすることで、それぞれの考え方や目線の違いを共有して情報を発信できることが特徴です。
</p>
</div>
</div>
<div class="content">
<img
src="./images/programming.svg"
alt="プログラミング"
class="content-image"
/>
<div class="content-text">
<h3>プログラミング初学者向け</h3>
<p>
WP-LOADはプログラミングを学びたい初学者向けのWebメディアです。<br />
HTML/CSS/jQuery/WordPressを主に解説しています。その他、Gitやネットワーク、ブラウザの仕組みなど、基礎から実務に必要な知識まで幅広く学ぶことができます。コーディング教材も用意しているので、ぜひチャレンジしてみてください。<br />
2019年9月より運営を開始して、現在(2021年11月)もデザインリニューアルやページ高速化、SEO強化を定期的に行っています。
</p>
</div>
</div>
</section>
<section class="attention fade-in">
<div class="wrapper">
<h2>このLPについて</h2>
<h3>ポートフォリオに掲載可能なコーディング練習用教材です</h3>
<p>
このサイトはHTML/CSS、jQueryを勉強中のプログラミング初学者に向けて制作しています。<br />
jQueryは初学者でも導入しやすいスムーススクロール、フェードインを採用しています。実践に近いコーディングが学べるので是非チャレンジしてみてください!
ポートフォリオサイトへ実績として掲載可能です。模写したものをポートフォリオとして使用してもOKです。
</p>
<p>
デザインデータ、コーディングの手順や解説については下記のURLよりご確認ください。<br />
<a href="https://wp-load.in/teaching-materials"
>https://wp-load.in/teaching-materials</a
>
</p>
<h3>※注意事項</h3>
<p>
XDデータのデザインデータにあるイラストに関してはフリー素材を使用している為、当サイトが保有するものではありません。使用する際はご注意ください。<br />
商用利用としては可能ですが、販売・再配布は禁止です。
</p>
</div>
</section>
<section class="writer fade-in">
<h2>ライターさん募集中!</h2>
<div class="wrapper">
<img src="./images/writer.svg" alt="ライター" class="content-image" />
<div class="content-text">
<p>
WP-LOADではWeb制作・プログラミング記事を執筆して頂けるライターさんを募集しています。興味がある方はお問い合わせフォームよりお気軽にお問い合わせください。
</p>
<dl>
<dt>【必須スキル】</dt>
<dd>・ライティング経験がある</dd>
<dd>・ワードプレスのテーマ開発経験がある</dd>
</dl>
<p>ライティング・Web制作について現在勉強中の方も大歓迎です!</p>
<div class="button button__main">
<a href="/">お問い合わせ</a>
</div>
</div>
</div>
</section>
</main>
jQueryを1行ずつ解説
$(window).on('scroll', function () { // スクロールする度にjsが発火
});
ブラウザをスクロールしていくと js が発火します。
let topPosition = $(this).offset().top; // .fade-inからブラウザ上部までの距離を取得
「$(this)」はイベントが発生した要素(ここでは.fade-in)のことを指します。
「.fade-in」からブラウザの一番上までの距離を「topPosition」という関数名に代入します。
let scroll = $(window).scrollTop(); // スクロール量を取得
ブラウザ上でスクロールした量を「scroll」という関数名に代入します。
let windowHeight = $(window).height(); // 表示中のブラウザの高さを取得
表示中のブラウザの高さの値を「windowHeight」という関数名に代入します。
if (scroll > topPosition - windowHeight) { // ブラウザに要素が表示された時
$(this).addClass("scroll"); // .fade-inに.scrollを付与
}
ifは条件分岐です。プログラミングっぽくなってきましたね!
「要素からブラウザの一番上までの距離 ー 表示中のブラウザの高さ」よりスクロール量が多い時に「.fade-in」のクラスがついている要素に「scroll」というクラスを追加します。
該当しないときは何も起こりません。
CSSを解説
「scroll」という新しく追加したクラス名にCSSを当てることでフェードインが完成します。流れとしては、要素を非表示 → スクロールに応じて表示。
要素が見える前のCSS(非表示の状態)です。
.fade-in {
opacity: 0;
transform: translateY(100px);/* 上に動くに動く */
transition: all 1500ms; /* アニメーションの時間 */
}
スクロールに応じて表示するCSSです。
.scroll {
opacity: 1;
transform: translateY(0);
}
HTMLにクラス名を新しく追加する
動かしたい要素に.fade-in
を追加します。
今回は各コンテンツごとにフェードインの動きをつけたいので、
- WP-LOADについて(.about)
- このLPについて(.attention)
- ライター募集中!(.writer)
に「fade-in」というクラスを追記します。
これでjQueruのフェードイン実装は完成です!
スムーススクロール
スムーススクロールとは、ゆっくりとページ内リンク先へ移動するという動きです。
今回はフッターにある「TOPへ」ボタンに実装して、ゆっくりとTOPまで移動させるようにします。
完成したもの
// スムーススクロール
let pageTop = $("#pagetop");// #pagetopの値を取得
pageTop.on("click", function () {// クリックするとjsが発火
$("body, html").animate({
scrollTop: 0// スクロール位置はページの一番上まで
}, 500);// 500msかけて遷移する
return false;
});
<div id="pagetop" class="button__to-top">
<a href="/">
<img src="./images/arrow.svg" alt="トップへ戻る" />
<span>TOPへ</span>
</a>
</div>
/* トップへ戻るボタン */
.button__to-top {
position: absolute;
right: 20px;
bottom: 20px;
text-align: center;
}
.button__to-top a {
display: inline-block;
padding: 20px;
border-radius: 50% 50%;
text-decoration: none;
background: transparent linear-gradient(230deg, #37d5d6 0%, #5d55e8 100%) 0%
0%;
box-shadow: 0px 0px 30px #4aa7ff80;
}
.button__to-top span {
color: #ffffff;
display: block;
font-size: 12px;
font-weight: bold;
}
jQueryを1行ずつ解説
変数名を「pageTop」と宣言し、「#pagetop」の値を格納します。
let pageTop = $("#pagetop");// #pagetopの値を取得
「#pagetop」がクリックされた時、js が発火します。
pageTop.on("click", function () {// クリックするとjQueryが発火
サイトの一番上まで 500ms (5秒)かけてスクロールします。
$("body, html").animate({
scrollTop: 0// スクロール位置はページの一番上まで
}, 500);// 500msかけて遷移する
下記は解説が難しいので、今回はこのように記述することだけわかればOKです。
return false;
jQueryが動かないとき
jQueryが動かないときは、原因は下記が挙げられます。一つ一つ確認してみてください。
- main.jsへのパスが間違っている
- scriptタグのリンクが間違っている・記述場所が間違っている
- 構文が間違っている(全角の文字や括弧などが足りていないなど)
コーディングが完成しました!
完成した方はデモサイトやデザインと見比べてみましょう!
おそらく最初は少し変な動きがあったり、デザインとは違う部分が出てくると思いますが、余力があれば繰り返し修正してみて下さい。
今回はコーディング教材なので、まずは形となるところまでできればOKですが、実務ではデザインデータ通りにコーディングすることが求められます。
本格的にWordPressエンジニアやデザイナーになりたい!という方であれば、デザイン通りにコーディングする癖をつけることが大切です。(大変ですけどね!)
最後に
最後までお疲れ様でした。難しい部分もあったと思いますが、ここまでできたらコーディングのスキルは着実に上がっています。
もし、ハマってしまった時はGoogle検索で同じような人はいないか?探すことも良いでしょう。HTML や CSS、jQuery は情報がたくさんあるので、解決できると思います。検索をして自分で解決することも実務では必要なスキルです。
ここまでWP-LOAD LPのコーディング教材を完走された方は、Twitter などの SNS で感想をシェアして頂けると嬉しいです!
それでは!