javascriptはトップのいくつかのコードの総括に戻ります.
11489 ワード
純jsコード
トップに戻るのは簡単です.
互換性のあるIE 6のコード
IE 7および以上のブラウザバージョンは、完全に互換性があります.ただ、IE 6という不死身のものは、このような人を苦しめて、仕方なく単独で処理します.私が今使っているJSコードは簡単です.Jqueryを利用しています.外部にJqueryをロードするのはもちろんです.JSコードは以下の通りです
/**
*
* @param acceleration
* @param time ( )
**/
function goTop(acceleration, time) {
acceleration = acceleration || 0.1;
time = time || 16;
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
var x3 = 0;
var y3 = 0;
if (document.documentElement) {
x1 = document.documentElement.scrollLeft || 0;
y1 = document.documentElement.scrollTop || 0;
}
if (document.body) {
x2 = document.body.scrollLeft || 0;
y2 = document.body.scrollTop || 0;
}
var x3 = window.scrollX || 0;
var y3 = window.scrollY || 0;
//
var x = Math.max(x1, Math.max(x2, x3));
//
var y = Math.max(y1, Math.max(y2, y3));
// = / , , 1 ,
var speed = 1 + acceleration;
window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
// ,
if(x > 0 || y > 0) {
var invokeFunction = "goTop(" + acceleration + ", " + time + ")";
window.setTimeout(invokeFunction, time);
}
}
呼び出し方法トップに戻るのは簡単です.
<a href="#" onclick="goTop();return false;">TOP</a>
jquery実現コード<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var bt = $('#toolBackTop');
var sw = $(document.body)[0].clientWidth;
var limitsw = (sw - 840) / 2 - 80;
if (limitsw > 0){
limitsw = parseInt(limitsw);
bt.css("right",limitsw);
}
$(window).scroll(function() {
var st = $(window).scrollTop();
if(st > 30){
bt.show();
}else{
bt.hide();
}
});
})
</script>
呼び出し方法<div style="display:none;" class="back-to" id="toolBackTop">
<a title=" " onclick="window.scrollTo(0,0);return false;" href="#top" class="back-top">
</a>
</div>
互換性のあるIE 6のコード
IE 7および以上のブラウザバージョンは、完全に互換性があります.ただ、IE 6という不死身のものは、このような人を苦しめて、仕方なく単独で処理します.私が今使っているJSコードは簡単です.Jqueryを利用しています.外部にJqueryをロードするのはもちろんです.JSコードは以下の通りです
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
backTop=function (btnId){
var btn=document.getElementById(btnId);
var d=document.documentElement;
window.onscroll=set;
btn.onclick=function (){
btn.style.display="none";
window.onscroll=null;
this.timer=setInterval(function(){
d.scrollTop-=Math.ceil(d.scrollTop*0.1);
if(d.scrollTop==0) clearInterval(btn.timer,window.onscroll=set);
},10);
};
function set(){btn.style.display=d.scrollTop?'block':"none"}
};
backTop('gotopbtn');
</script>
HTMLコードはより簡単です.<div id="gotopbtn"> </div>
その他はCSSでレンダリングされています.CSSコードを見てください.<style type="text/css">
#gotopbtn{width:20px;height:50px;line-height:999px;overflow:hidden;background:url(images/scrolltop.png) no-repeat 50% 0;position:fixed;_position:absolute;bottom:100px; left:50%; margin-left:440px;display:none;cursor:pointer}
</style>
<!--[if lt IE 6]>
<style type="text/css">
html{_text-overflow:ellipsis}
#gotopbtn{_position:absolute;_top:expression(eval(document.documentElement.scrollTop + 400))}
</style>
<![endif]-->