JavaScript

pagePiling.js入門:マウススクロールでスムーズなページ切り替えを実現する方法

pagePiling.jsを使ってマウススクロールでページを切り替える方法を紹介します。
このライブラリを使用すると、フルスクリーンでスクロールバーが表示されず、マウスのトラックボールやキーボードの矢印キーでページを切り替えることができます。

pCSSの記述

まず、必要なCSSファイルjquery.pagepiling.cssフを読み込みます。次に、メニュー切り替えボタンやページセクション(#section1~4)のスタイルを定義します。必要に応じてこれらのスタイルをカスタマイズしてください。

<link rel="stylesheet" type="text/css" href="jquery.pagepiling.css" />
<style>
	p{
		font-size: 2em;
	}
	.section{
		text-align: center;
	}

    /* menu
	 * --------------------------------------- */
	#menu li {
		display:inline-block;
		margin: 10px;
		color: #000;
		background:#fff;
		background: rgba(255,255,255, 0.5);
		-webkit-border-radius: 10px;
	            border-radius: 10px;
	}
	#menu li.active{
		background:#666;
		background: rgba(0,0,0, 0.5);
		color: #fff;
	}
	#menu li a{
		text-decoration:none;
		color: #000;
	}
	#menu li.active a:hover{
		color: #000;
	}
	#menu li:hover{
		background: rgba(255,255,255, 0.8);
	}
	#menu li a,
	#menu li.active a{
		padding: 9px 18px;
		display:block;
	}
	#menu li.active a{
		color: #fff;
	}
	#menu{
		position:fixed;
		top:0;
		left:0;
		height: 40px;
		z-index: 70;
		width: 100%;
		padding: 0;
		margin:0;
	}

    /* Section 1
	 * --------------------------------------- */
	#section1 h1{
		font-size: 24px;
		font-weight: bold;
	}
	#section1 p{
		color: #333;
		color: rgba(0,0,0,0.3);
	}

	/* Section 2
	 * --------------------------------------- */
	#section2 h1,
	#section2 p{
		z-index: 3;
	}
	#section2 p{
		opacity: 0.8;
	}

	#section2 #colors{
		right: 60px;
		bottom: 0;
		position: absolute;
		height: 413px;
		width: 258px;
	}

	/* Section 3
	 * --------------------------------------- */
	#section3 #colors{
		left: 60px;
		bottom: 0;
	}
	#section3 p{
		color: #757575;
	}

	/* Section 4
	 * --------------------------------------- */
	#section4 p{
		opacity: 0.6;
	}

	/* Overwriting fullPage.js tooltip color
	* --------------------------------------- */
	#pp-nav.custom .pp-tooltip{
		color: #AAA;
	}
</style>

JavaScriptの記述

次に、必要なJavaScriptファイル、jquery-1.11.0.min.js、jquery.pagepiling.min.jsを読み込みます。$(‘ページ切替エリア’).pagepiling({切替オプション})でページ切替を行うエリアにページ数、ページの色等を設定します。

	<script src="jquery-1.11.0.min.js"></script>

	<script type="text/javascript" src="jquery.pagepiling.min.js"></script>
	<script type="text/javascript">
		$(document).ready(function() {

			/*
			* Plugin intialization
			*/
	    	$('#pagepiling').pagepiling({
	    		menu: '#menu',
	    		anchors: ['page1', 'page2', 'page3', 'page4'],
			    sectionsColor: ['#BFEFFF', '#ee005a', '#2C3E50', '#39C'],
			    navigation: {
			    	'position': 'right',
			   		'tooltips': ['Page 1', 'Page 2', 'Page 3', 'Page 4']
			   	},
			    afterRender: function(){
			    	$('#pp-nav').addClass('custom');
			    },
			    afterLoad: function(anchorLink, index){
			    	if(index>1){
			    		$('#pp-nav').removeClass('custom');
			    	}else{
			    		$('#pp-nav').addClass('custom');
			    	}
			    }
			});


			/*
		    * Internal use of the demo website
		    */
		    $('#showExamples').click(function(e){
				e.stopPropagation();
				e.preventDefault();
				$('#examplesList').toggle();
			});

			$('html').click(function(){
				$('#examplesList').hide();
			});
	    });
    </script>

HTMLの記述

最後に、メニュー切り替えボタンやページセクションを定義します。メニュー切替ボタンや切替りページ(#Section1~4)を用意します。ここでも、必要に応じて変更してください。

	<ul id="menu">
		<li data-menuanchor="page1" class="active"><a href="#page1">1ページ</a></li>
		<li data-menuanchor="page2"><a href="#page2">2ページ</a></li>
		<li data-menuanchor="page3"><a href="#page3">3ページ</a></li>
		<li data-menuanchor="page4"><a href="#page4">4ページ</a></li>
	</ul>


	<div id="pagepiling">
	    <div class="section" id="section1">
	    	<h1>pagePiling.jsを使ってスクロールでページ切替</h1>
			<p>1ページ目</p>
			

	    </div>
	    <div class="section" id="section2">
	    	<div class="intro">
	    		<div id="colors"></div>
	    		<h1>2ページ目</h1>
	    		<p>スクロールバーが表示されません</p>

	    	</div>
	    </div>
	    <div class="section" id="section3">
	    	<div class="intro">
	    		<h1>3ページ目</h1>
	    		<p>フルスクリーンです</p>
	    	</div>
	    </div>
	    <div class="section" id="section4">
	    	<div class="intro">
	    		<h1>4ページ目</h1>
	    		<p>キーボードの↑↓でページが切替ります</p>
	    	</div>
	    </div>
	</div>

pagePiling.jsを使ってスクロールでページ切替を行うデモページ

こちらがpagePiling.jsを使ったスクロールでページ切り替えを行うデモページです。

pagePiling.jsを使ってスクロールでページ切替を行うデモページ

ソース元:pagePiling.js plugin | Create a stack of scrolling pages

以下がpagePiling.jsのソース元サイトです。
pagePiling.js plugin | Create a stack of scrolling pages

まとめ

pagePiling.jsを使うことで、マウススクロールやキーボード操作によるページ切り替えを簡単に実装できます。これにより、ユーザーに滑らかなページ遷移体験を提供することができます。

 
※流用される場合は自己責任でお願いします。
 デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。