// JavaScript Document 回到顶部
function goTopEx(){
var obj=document.getElementById("goTopBtn"); function getScrollTop(){
var xtop;
xtop = document.documentElement.scrollTop || document.body.scrollTop;
return xtop;
}
function setScrollTop(value){
if (document.body)
{
document.documentElement.scrollTop=value;
}
else
{
document.documentElement.body=value;
}
}
window.onscroll=function(){getScrollTop()>0?obj.style.display="block":obj.style.display="none";} obj.onclick=function(){
var gotop;
gotop=window.setInterval(scrollMove,10);
function scrollMove(){
setScrollTop(getScrollTop()/3);
if(getScrollTop()<1)
{
window.clearInterval(gotop);
}
}
alert(gotop);
}
}在html里我这样调用的,但是在ie,firefox都会执行,在google浏览器里Onclick时没反应!
<DIV style="DISPLAY: none" id=goTopBtn><IMG border=0 src="{res file=images/toTop.png}"></DIV>
<SCRIPT type=text/javascript>goTopEx();</SCRIPT>
var de = document.documentElement;
xtop=self.pageYOffset || ( de && de.scrollTop ) || document.body.scrollTop;
谢谢,我试了你的方法,还是不行。通过调试,我发现是
gotop=window.setInterval(scrollMove,10);
function scrollMove(){
这个scrollMove函数在谷歌下不会执行,知道该怎么解决吗?谢谢!
var gotop;
gotop=window.setInterval(function(){
setScrollTop(getScrollTop()/3);
if(getScrollTop()<1)
{
window.clearInterval(gotop);
}
},10);}
alert(gotop);
}这样试试~·
var gotop;
gotop=window.setInterval(function(){
setScrollTop(getScrollTop()/3);
if(getScrollTop()<1)
{
window.clearInterval(gotop);
}
},10);
alert(gotop);
}用这个,刚才那个多了一个括号~·
在chrome 和safari里面获取和设置scrollTop会有点问题,获取的时候只有用pageYOffset才能得到正确的值,设置的时候要用document.body.scrollTop = n,但这两个浏览器又是认document.documentElement的,so...<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div style="height:1000px;"></div>
<input type="button" id='a' />
<div style="height:200px;"></div>
<script type="text/javascript">
(function(w, n) {
function m(op) {
var step = op.step || 10; //动画的帧频(ms)
var time = op.time || 50; //动画的帧数
var stime = 0;
document.getElementById(op.handle).onclick = function() {
var top = g();
if(top > 0) {
stime = 0;
(function() {
s(Math.ceil(t(stime, top, -top, time)));
if(stime < time) {
stime++;
setTimeout(arguments.callee, step);
}
})();
}
};
}
//缓动算法
function t(t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
}
//获取页面scrollTop
function g() {
//ff / chrome safari / ie
return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
}
//设置页面scrollTop
function s(n) {
//chrome safari / ff / ie
(/(chrome|version)/i).test(navigator.userAgent)? document.body.scrollTop = n : document.documentElement? document.documentElement.scrollTop = n : document.body.scrollTop = n;
}
w[n] = m;
})(window, 'sbsbbsbs');//调用
sbsbbsbs({handle: 'a', time: 30});
</script>
</body>
</html>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<a href="#top" onclick="window.scrollTo(0,0);return false;">返回顶部
</a>
document.documentElement.body=value;
你好,经测试,你的代码在各浏览器都没有问题,可以达到顶部。可是我用一个浮动的固定div去代替你的Input,实现:当网页向下滚动到大于某个像素时才显示这个div,等向上小于某个值时就隐藏起来,请帮忙实现,我想这样就完美了。谢谢!input 改为:<DIV id=goTop><IMG border=0 src="{res file=images/toTop.png}"></DIV>
goTop的css
#goTopBtn {
POSITION: fixed; WIDTH: 48px; HEIGHT: 48px; BOTTOM: 15px; RIGHT: 15px; CURSOR: pointer;
}#goTopBtn:hover {
FILTER: alpha(opacity=60); opacity: 0.6; -moz-opacity: 0.6
}
window.scroll = function(){
//scrollTop > #goTopBtn的高度? #goTopBtn显示 : #goTopBtn隐藏;
}
toTop.js/**
@ 回到页面顶部
@ 2011-12-16
**/
(function(w, n) {
var obj=document.getElementById("goTopBtn");
function m(op) {
var step = op.step || 10; //动画的帧频(ms)
var time = op.time || 50; //动画的帧数
var stime = 0;
document.getElementById(op.handle).onclick = function() {
var top = g();
if(top > 0) {
stime = 0;
(function() {
s(Math.ceil(t(stime, top, -top, time)));
if(stime < time) {
stime++;
setTimeout(arguments.callee, step);
}
})();
}
};
}
//缓动算法
function t(t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
}
//获取页面scrollTop
function g() {
//ff / chrome safari / ie
return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
}
//设置页面scrollTop
function s(n) {
//chrome safari / ff / ie
(/(chrome|version)/i).test(navigator.userAgent)? document.body.scrollTop = n : document.documentElement? document.documentElement.scrollTop = n : document.body.scrollTop = n;
}
window.onscroll=function(){g()>300?obj.style.display="block":obj.style.display="none";} w[n] = m;
})(window, 'gomallTop');//调用 time 为时间
gomallTop({handle: "goTopBtn", time: 10});
html代码:
<DIV id=goTopBtn style="display:none"><IMG border=0 src="{res file=images/toTop.png}"></DIV>
<script type="text/javascript" src="toTop.js" charset="utf-8"></script>
变量自己改吧。
//return document.documentElement.scrollTop;
return document.documentElement.scrollTop+document.body.scrollTop;
}
function setScrollTop(value) {
//document.documentElement.scrollTop = value;
document.documentElement.scrollTop+document.body.scrollTop;
}
这样既可
<!DOCTYPE HTML>
<html>
<head>
<title>用jQuery实现最人性化的返回顶部跳转效果</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
#back-to-top{
position:fixed;
bottom:100px;
right:10px;
}
#back-to-top a{
text-align:center;
text-decoration:none;
color:#d1d1d1;
display:block;
width:30px;
/*使用CSS3中的transition属性给跳转链接中的文字添加渐变效果*/
-moz-transition:color 1s;
-webkit-transition:color 1s;
-o-transition:color 1s;
}
#back-to-top a:hover{
color:#979797;
}
#back-to-top a span{
background:#d1d1d1;
border-radius:6px;
display:block;
height:33px;
width:30px;
background:#d1d1d1 url(l_top.jpg) no-repeat center center;
margin-bottom:5px;
-moz-transition:background 1s;
-webkit-transition:background 1s;
-o-transition:background 1s;
}
#back-to-top a:hover span{
background:#979797 url(l_top.jpg) no-repeat center center;
}
</style>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//首先将#back-to-top隐藏
$("#back-to-top").hide();
//当滚动条的位置处于距顶部100像素以下时,跳转链接出现,否则消失
$(function () {
$(window).scroll(function(){
if ($(window).scrollTop()>100){
$("#back-to-top").fadeIn(1500);
}
else
{
$("#back-to-top").fadeOut(1500);
}
});
//当点击跳转链接后,回到页面顶部位置
$("#back-to-top").click(function(){
$('body,html').animate({scrollTop:0},1000);
return false;
});
});
});
</script>
</head>
<body id="top">
<div style="width:980px;height:800px;border:1px solid #dcdcdc"></div>
<p id="back-to-top"><a href="#top"><span></span></a></p>
</body>
</html>
// JavaScript Document
function goTopEx(){
var obj=document.getElementById("goTopBtn");
function getScrollTop(){
return document.documentElement.scrollTop;
}
function setScrollTop(value){
document.documentElement.scrollTop=value;
}
window.onscroll=function(){getScrollTop()>0?obj.style.display="":obj.style.display="none";}
obj.onclick=function(){
var goTop=setInterval(scrollMove,10);
function scrollMove(){
setScrollTop(getScrollTop()/1.1);
if(getScrollTop()<1)clearInterval(goTop);
}
}
}<body style="text-align:center"><DIV style="DISPLAY: none" id=goTopBtn><IMG border=0 src="images/gototop.png"></DIV>
<SCRIPT type=text/javascript>goTopEx();</SCRIPT>
</body>