jQueryを使用せず、ページ上部に固定バーを表示する方法をご紹介します。
Contents
ページ上部に固定バーを表示するCSSの記述
※固定バー(#topbar)のスタイルを指定してます。必要に応じて変更して下さい。
<style type="text/css"> <!-- body{ margin:0; padding:0; } h1{ font-size:16px; font-weight:normal; line-height:2.0em; text-align:center; padding:70px 0 15px 0; } p{ font-size:14px; font-weight:normal; text-align:center; } #idWrap{ width:700px; height:4000px; margin:0 auto; text-align:left; } #topbar{ position:absolute; border: 1px solid black; padding: 5px; width: 90%; visibility: hidden; z-index: 100; text-align:center; } #topbar a{ color:#333; text-decoration:underline; } --> </style>
jQueryを使用せず、ページ上部に固定バーを表示するJavaScriptの記述
※固定バー(id=”topbar”)に対してページ上部に表示し、スクロールしても常に上部に固定表示される様にしてます。閉じるリンククリックでclosebar()が実行され、固定バーエリアが非表示になります。
<script type="text/javascript"> var persistclose=0 var startX = 50 var startY = 70 var verticalpos="fromtop" function iecompattest(){ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body } function get_cookie(Name) { var search = Name + "=" var returnvalue = ""; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search) if (offset != -1) { offset += search.length end = document.cookie.indexOf(";", offset); if (end == -1) end = document.cookie.length; returnvalue=unescape(document.cookie.substring(offset, end)) } } return returnvalue; } //固定バーを閉じる function closebar(){ if (persistclose) document.cookie="remainclosed=1" document.getElementById("topbar").style.visibility="hidden" } function staticbar(){ barheight=document.getElementById("topbar").offsetHeight var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera; var d = document; function ml(id){ var el=d.getElementById(id); if (!persistclose || persistclose && get_cookie("remainclosed")=="") el.style.visibility="visible" if(d.layers)el.style=el; el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";}; el.x = startX; if (verticalpos=="fromtop") el.y = startY; else{ el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight; el.y -= startY; } return el; } window.stayTopLeft=function(){ if (verticalpos=="fromtop"){ var pY = ns ? pageYOffset : iecompattest().scrollTop; ftlObj.y += (pY + startY - ftlObj.y)/8; } else{ var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight; ftlObj.y += (pY - startY - ftlObj.y)/8; } ftlObj.sP(ftlObj.x, ftlObj.y); setTimeout("stayTopLeft()", 10); } ftlObj = ml("topbar"); stayTopLeft(); } if (window.addEventListener) window.addEventListener("load", staticbar, false) else if (window.attachEvent) window.attachEvent("onload", staticbar) else if (document.getElementById) window.onload=staticbar </script>
ページ上部に固定バーを表示するHTMLの記述
※固定バー(id=”topbar”)エリアを用意します。必要に応じて変更して下さい。
<div id="topbar"> 固定バーエリアです。 <a href="" onClick="closebar(); return false">閉じる</a> </div> <div id="idWrap"> <br /> <br /> <h1>ページ上部に固定バーを常に表示します。下にスクロールしてみて下さい。<br />「閉じる」をクリックするとバーが消えます。</h1> <p>jQueryは使用してません。</p> </div><!--/idWrap-->
ページ上部に固定バーを表示するデモページ
ソース元:Dynamic Drive DHTML scripts- Floating Top Bar script
ソース元:Dynamic Drive DHTML scripts- Floating Top Bar script
固定メニューや広告エリア表示等で使えそうです。
※流用される場合は自己責任でお願いします。
デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。
ディスプレイ広告