このページの本文へ

HTMLもCSSも書換不要!気持ちいいスクロール (3/5)

2008年10月27日 04時00分更新

文●古籏一浩、ASCII.jp

  • この記事をはてなブックマークに追加
本文印刷

HTMLやCSSの追加・修正はナシ!


 スムーズスクロール機能を実装するのは、前回同様、趣味の写真サイト「JPhoto.net」のギャラリーページです。JPhoto.netのギャラリーページは3つのジャンルに写真画像が分類されていて、それぞれのジャンルにジャンプできるようになっています。このリンクをスムーズスクロールに切り替えましょう。

 まず、何も組み込んでいない状態のソースコードは以下のようになっています(元になる作例ページ)。

作例

組み込む前の状態。リンクをクリックすると瞬時にアンカー先へと移動してしまいます

■元のHTMLファイル

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="content-style-type" content="text/css">
<meta name="generator" content="手入力でござる">
<link rel="stylesheet" href="css/init.css" type="text/css" media="all">
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
<title>JPhoto.net - PHOTO -</title>
</head>
<body>
<div id="contents"> 
<h1>JPhoto.net</h1>
<ul id="globalMenu">
<li><a href="top.html" id="menu-top">Top</a></li>
<li><a href="photo.html" id="menu-gallery" class="current">Gallery</a></li>
<li><a href="#TB_inline?width=320&height=300&inlineId=searchOption" class="thickbox" id="menu-search">Search</a></li>
<li><a href="ranking.html" id="menu-ranking">Ranking</a></li>
<li><a href="info.html" id="menu-info">Information</a></li>
</ul>
<br style="clear:both;">
<ul class="photo-menu photo-header">
<li class="menu01"><a href="#sect1">Recent Entries</a></li>
<li class="menu02"><a href="#sect2">Traditional Beauty</a></li>
<li class="menu03"><a href="#sect3">Modern Beauty</a></li>
</ul>
<div class="photoAlbum recent">
<a id="sect1" name="sect1"></a>
<h2><img src="images/photo/menu01.gif" width="120" height="13"></h2>
<a href="photo/photo1.html"><img src="images/photo1_rollout.jpg"></a><a href="photo/photo2.html"><img src="images/photo2_rollout.jpg"></a><a href="photo/photo3.html"><img src="images/photo3_rollout.jpg"></a>
<a href="recent.html" class="more">More...</a>
</div>
<div class="photoAlbum traditional">
<a id="sect2" name="sect2"></a>
<h2><img src="images/photo/menu02.gif" width="120" height="13"></h2>
<a href="photo/photo4.html"><img src="images/photo4_rollout.jpg"></a><a href="photo/photo5.html"><img src="images/photo5_rollout.jpg"></a><a href="photo/photo6.html"><img src="images/photo6_rollout.jpg"></a>
<a href="traditional.html" class="more">More...</a>
</div>
<div class="photoAlbum modern">
<a id="sect3" name="sect3"></a>
<h2><img src="images/photo/menu03.gif" width="120" height="13"></h2>
<a href="photo/photo7.html"><img src="images/photo7_rollout.jpg"></a><a href="photo/photo8.html"><img src="images/photo8_rollout.jpg"></a><a href="photo/photo9.html"><img src="images/photo9_rollout.jpg"></a>
<a href="modern.html" class="more">More...</a>
</div>
<ul class="photo-menu photo-footer">
<li class="menu01"><a href="#sect1">Recent Entries</a></li>
<li class="menu02"><a href="#sect2">Traditional Beauty</a></li>
<li class="menu03"><a href="#sect3">Modern Beauty</a></li>
</ul>
<div id="footer">
<p>Copyright JPhoton.net 2008 all rights reserved.</p>
</div>
</div>
<!-- 追加したスクリプト -->
<script type="text/javascript" src="js/rollover2.js"></script>
</body>
</html>

 それではいつものように、HTMLとCSSの準備からとりかかりましょう……と行きたいところですが、実は今回はすることがありません。df Smooth Scrollは、このあとに紹介するスクリプトの組み込みだけで動作するのです。

 1つだけ確認しておかなければならないのは、アンカーが正しく設定されているかどうかです。アンカーは「name属性」と「id属性」に同じ名前を指定するようにしましょう。たとえば以下のように記述していれば何の問題もありません。

<a id="sect3" name="sect3"></a>

 ところがこれが以下のように記述されている場合、環境によってはうまく動作しません。

<a id="sect2" name="sect3"></a>   ……idとnameに違う名前が設定されている
<a id="sect3"></a>
<a name="sect3"></a>   ……idまたはnameのどちらか一方しか指定されていない

 この点だけはあらかじめチェックしておいてください。

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています