当前位置: 代码迷 >> JavaScript >> 点击锚点链接时页面滚动的奇效(Javascript Smooth Scroll)
  详细解决方案

点击锚点链接时页面滚动的奇效(Javascript Smooth Scroll)

热度:562   发布时间:2012-11-23 22:54:33.0
点击锚点链接时页面滚动的特效(Javascript Smooth Scroll)

方案一: ?简单版

?

?

原型:

?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Website Vertical Scrolling with jQuery</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    </head>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>		
<script>
$(function()
{
	 $('#scollWin').click(function(){
		 $('html,body').animate({
		 scrollTop: $("#scrollToHere").offset().top
		 }, 2000);
	 })
})
</script>

<body>
<div id="scrollToHere">  Scroll to here </div>
<p style="height:1800px;">
The first draft of a law against animal abuse, aiming to protect animals from being hurt or killed in a cruel manner, was completed by a group of experts and was due to be raised for legislation in April, local media reported earlier this year.<br><br>

The proposal included jailing people who eat dog meat for up 15 days. While many Chinese enjoy rich dog meat, especially during cold winters, some object to the practice in some regions of beating dogs to death to release the blood into the meat.<br><br>

Preserved dog meat is an accepted cuisine in some parts of Guangdong province as certain breeds of dogs are raised up to 3 or 4 months old and slaughtered on farms, local media reported. Eating dog is a socially acceptable practice in parts of southern China .<br><br>

Dog meat has been a source of food in some areas of China from around 500 BC, and possibly even earlier.<br><br>

Also Read: Amazing Photos of 'Crystal Cave' in Russia [PHOTOS] <br><br>

Read related article: China proposes ban on dog meat. will South Korea follow suit?<br><br>

MUST READ: Chinese "snake town" raises over 3 million snakes for food (EXOTIC PHOTOS)

</p>
<input type="button" id="scollWin" value="Scroll up" />

    </body>
</html>

?延伸:

?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Website Vertical Scrolling with jQuery</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    </head>
    <body>

        <!-- The JavaScript -->
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>		
        <script type="text/javascript">
            $(function() {
                $('.section a').bind('click',function(event){
                    var $anchor = $(this);
                    $('html, body').stop().animate({
                        scrollTop: $($anchor.attr('href')).offset().top
                    }, 1000);
                    event.preventDefault();
                });
            });
        </script>

       <div class="section" id="section1">  <a href="#section2">Bottom</a> </div>
<p style="height:1800px;">
The first draft of a law against animal abuse, aiming to protect animals from being hurt or killed in a cruel manner, was completed by a group of experts and was due to be raised for legislation in April, local media reported earlier this year.<br><br>

The proposal included jailing people who eat dog meat for up 15 days. While many Chinese enjoy rich dog meat, especially during cold winters, some object to the practice in some regions of beating dogs to death to release the blood into the meat.<br><br>

Preserved dog meat is an accepted cuisine in some parts of Guangdong province as certain breeds of dogs are raised up to 3 or 4 months old and slaughtered on farms, local media reported. Eating dog is a socially acceptable practice in parts of southern China .<br><br>

Dog meat has been a source of food in some areas of China from around 500 BC, and possibly even earlier.<br><br>

Also Read: Amazing Photos of 'Crystal Cave' in Russia [PHOTOS] <br><br>

Read related article: China proposes ban on dog meat. will South Korea follow suit?<br><br>

MUST READ: Chinese "snake town" raises over 3 million snakes for food (EXOTIC PHOTOS)

</p>
        <div class="section" id="section2"> <a href="#section1">Top</a> </div>


    </body>
</html>

?

?

方案二:? 普通JavaScript

?

代码:

<!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>Smooth Scroll - by www.dezinerfolio.com</title>
<style type="text/css">

* {
	margin:0;
	padding:0;
	list-style:none;
}
body {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
}

.header_link{
	background:#9add19;
	padding:50px;
	width:500px;
	display:block;
	clear:both;
	text-align:center;
	margin:0 auto;
}

.middle_link{
	background:#13aceb;
	padding:50px;
	width:500px;
	display:block;
	clear:both;
	text-align:center;
	margin:0 auto;
}

.footer_link{
	background:#ff8400;
	padding:50px;
	width:500px;
	display:block;
	clear:both;
	text-align:center;
	margin:0 auto;
}

p{
	clear:both;
	padding:20px;
	text-align:left;
}

a{
	padding:10px 20px;
	background:#FFF;
	border:1px solid #000;
	color:#000;
	float:left;
	text-decoration:none;
	display:block;
	height:17px;
	width:185px;
	
	margin-left:15px;
}

a:hover{
	background:#CCC;
}
</style>
<script type="text/javascript" src="smooth.js"></script>
</head><body>

<div class="header_link">

<h1 style="clear: both; padding: 5px;">Smooth Scroll by Dezinerfolio</h1>

<a name="top" href="#footer">GO TO FOOTER</a>
<a href="#middle">GO TO MIDDLE</a>

  <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec 
diam  magna, consequat non, adipiscing quis, congue a, mauris. Duis 
convallis  leo quis metus. Aenean non nulla quis diam cursus ultricies. 
Vestibulum  sagittis. In porttitor est quis elit laoreet blandit. 
Quisque  condimentum eros id nulla. Pellentesque dui nisl, pretium eget,
  pellentesque nec, faucibus in, dui. Vestibulum quis mi. Maecenas 
turpis  enim, commodo eget, consectetuer ac, posuere in, nisl. Duis elit
 nunc,  molestie euismod, tempus at, condimentum at, nulla. </p>
  <p>Praesent eget lectus. Donec a nunc in dolor tincidunt rutrum.  
Phasellus ornare. Vestibulum pulvinar. Morbi massa erat, ornare sed,  
eleifend aliquet, imperdiet vitae, ligula. Ut nec diam. Phasellus dui  
felis, dignissim vitae, scelerisque ac, aliquam et, diam. Morbi arcu  
odio, mattis vel, euismod a, euismod ut, justo. Proin congue  
consectetuer diam. Maecenas bibendum est in ipsum. In cursus nibh.  
Proin sit amet nulla. Curabitur non lectus. Vivamus pharetra. Vivamus  
nec sem. Etiam a ante et sem scelerisque adipiscing. Curabitur  
sollicitudin. Nulla nec diam at odio fermentum hendrerit. </p>
  <p>Nunc quis ipsum. Sed suscipit bibendum ante. Phasellus facilisis  
commodo sapien. Nam vitae nibh quis lacus cursus cursus. Maecenas ac  
quam a libero adipiscing ultricies. Praesent at nisi ut lectus congue  
ullamcorper. Proin mattis enim vitae magna fermentum facilisis. Proin  
id lorem. Aenean ultrices nisi in enim. Aenean interdum, dolor id  
convallis suscipit, risus est posuere nulla, sed tincidunt est nibh ut  
enim. Praesent vel purus ac sapien iaculis placerat. Mauris nibh. In  
feugiat felis. </p>
  <p>Sed velit elit, rutrum nec, mattis vitae, aliquam eu, pede. Nulla  
orci nisl, tempor nec, tempor sed, congue rutrum, mauris. Nam sit amet  
ipsum sed risus auctor ornare. Nullam eleifend libero sit amet diam.  
Phasellus non eros. Nunc rutrum odio ut sapien. Phasellus ligula neque, 
 pulvinar non, venenatis id, pharetra eget, ante. Class aptent taciti  
sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. 
 Proin tortor ligula, dictum a, aliquet ac, vehicula sed, purus. Nulla  
egestas cursus erat. Sed sollicitudin. </p>
  <h2>Dezinerfolio</h2>
  
  <p>Praesent auctor, eros non varius dapibus, nibh risus molestie orci,
  et tincidunt justo est sit amet odio. Integer tincidunt feugiat urna. 
 Sed rutrum laoreet risus. Donec vel eros. Mauris laoreet tincidunt  
libero. Sed sit amet justo id nunc aliquam faucibus. Curabitur erat.  
Vivamus non nunc. Nunc orci sem, porttitor ultrices, iaculis id,  
placerat at, felis. Pellentesque ut mauris. Nunc libero arcu, bibendum  
vitae, hendrerit sit amet, vehicula sed, erat. Cum sociis natoque  
penatibus et magnis dis parturient montes, nascetur ridiculus mus.  
Proin ligula purus, viverra nec, tincidunt eget, venenatis nec, nisi. </p>
  <p>Class aptent taciti sociosqu ad litora torquent per conubia nostra,
  per inceptos hymenaeos. Maecenas viverra. Curabitur cursus metus non  
eros. Sed velit. In dapibus nisi sit amet nisl. Nulla aliquam, pede  
eget fermentum volutpat, elit sapien ultrices sem, a eleifend justo  
nisi eget purus. Praesent sit amet risus sagittis nisi aliquet  
eleifend. Sed placerat nulla vel quam. Sed sagittis nibh in augue  
vehicula aliquet. Suspendisse ac dui eu lacus viverra dictum. Curabitur 
 elementum, magna vitae commodo egestas, turpis lorem sollicitudin  
lorem, ac auctor sapien lacus a orci. Quisque ornare est id sem.  
Maecenas placerat, justo in suscipit adipiscing, ante metus ultricies  
augue, ac sodales eros sapien luctus arcu. Pellentesque lobortis quam  
non massa. Pellentesque habitant morbi tristique senectus et netus et  
malesuada fames ac turpis egestas. </p>
  <p>Nunc ac orci. Class aptent taciti sociosqu ad litora torquent per  
conubia nostra, per inceptos hymenaeos. Nunc pharetra mauris et massa.  
Praesent cursus fermentum libero. Pellentesque lobortis justo et nulla  
dictum mollis. Morbi euismod nonummy lorem. Nulla at velit.  
Pellentesque risus risus, euismod eu, dictum id, iaculis id, tellus.  
Nullam interdum. Etiam pharetra mollis nisi. Pellentesque interdum,  
nulla quis fringilla lacinia, leo felis suscipit sem, ac iaculis turpis 
 mi sit amet urna. Nulla mi ante, vehicula non, lacinia a, ornare at,  
est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices  
posuere cubilia Curae; Praesent fringilla fermentum nulla. Nulla  
facilisi. Suspendisse sit amet odio. Etiam ultricies. Pellentesque  
nibh. Cras nisl. Nulla neque. </p>
</div>


<div class="middle_link">

<a name="middle" href="#top">GO TO TOP</a>
<a href="#footer">GO TO FOOTER</a>

  <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec 
diam  magna, consequat non, adipiscing quis, congue a, mauris. Duis 
convallis  leo quis metus. Aenean non nulla quis diam cursus ultricies. 
Vestibulum  sagittis. In porttitor est quis elit laoreet blandit. 
Quisque  condimentum eros id nulla. Pellentesque dui nisl, pretium eget,
  pellentesque nec, faucibus in, dui. Vestibulum quis mi. Maecenas 
turpis  enim, commodo eget, consectetuer ac, posuere in, nisl. Duis elit
 nunc,  molestie euismod, tempus at, condimentum at, nulla. </p>
  <p>Praesent eget lectus. Donec a nunc in dolor tincidunt rutrum.  
Phasellus ornare. Vestibulum pulvinar. Morbi massa erat, ornare sed,  
eleifend aliquet, imperdiet vitae, ligula. Ut nec diam. Phasellus dui  
felis, dignissim vitae, scelerisque ac, aliquam et, diam. Morbi arcu  
odio, mattis vel, euismod a, euismod ut, justo. Proin congue  
consectetuer diam. Maecenas bibendum est in ipsum. In cursus nibh.  
Proin sit amet nulla. Curabitur non lectus. Vivamus pharetra. Vivamus  
nec sem. Etiam a ante et sem scelerisque adipiscing. Curabitur  
sollicitudin. Nulla nec diam at odio fermentum hendrerit. </p>
  <p>Nunc quis ipsum. Sed suscipit bibendum ante. Phasellus facilisis  
commodo sapien. Nam vitae nibh quis lacus cursus cursus. Maecenas ac  
quam a libero adipiscing ultricies. Praesent at nisi ut lectus congue  
ullamcorper. Proin mattis enim vitae magna fermentum facilisis. Proin  
id lorem. Aenean ultrices nisi in enim. Aenean interdum, dolor id  
convallis suscipit, risus est posuere nulla, sed tincidunt est nibh ut  
enim. Praesent vel purus ac sapien iaculis placerat. Mauris nibh. In  
feugiat felis. </p>
  <p>Sed velit elit, rutrum nec, mattis vitae, aliquam eu, pede. Nulla  
orci nisl, tempor nec, tempor sed, congue rutrum, mauris. Nam sit amet  
ipsum sed risus auctor ornare. Nullam eleifend libero sit amet diam.  
Phasellus non eros. Nunc rutrum odio ut sapien. Phasellus ligula neque, 
 pulvinar non, venenatis id, pharetra eget, ante. Class aptent taciti  
sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. 
 Proin tortor ligula, dictum a, aliquet ac, vehicula sed, purus. Nulla  
egestas cursus erat. Sed sollicitudin. </p>
    <h2>Dezinerfolio</h2>
  <p>Praesent auctor, eros non varius dapibus, nibh risus molestie orci,
  et tincidunt justo est sit amet odio. Integer tincidunt feugiat urna. 
 Sed rutrum laoreet risus. Donec vel eros. Mauris laoreet tincidunt  
libero. Sed sit amet justo id nunc aliquam faucibus. Curabitur erat.  
Vivamus non nunc. Nunc orci sem, porttitor ultrices, iaculis id,  
placerat at, felis. Pellentesque ut mauris. Nunc libero arcu, bibendum  
vitae, hendrerit sit amet, vehicula sed, erat. Cum sociis natoque  
penatibus et magnis dis parturient montes, nascetur ridiculus mus.  
Proin ligula purus, viverra nec, tincidunt eget, venenatis nec, nisi. </p>
  <p>Class aptent taciti sociosqu ad litora torquent per conubia nostra,
  per inceptos hymenaeos. Maecenas viverra. Curabitur cursus metus non  
eros. Sed velit. In dapibus nisi sit amet nisl. Nulla aliquam, pede  
eget fermentum volutpat, elit sapien ultrices sem, a eleifend justo  
nisi eget purus. Praesent sit amet risus sagittis nisi aliquet  
eleifend. Sed placerat nulla vel quam. Sed sagittis nibh in augue  
vehicula aliquet. Suspendisse ac dui eu lacus viverra dictum. Curabitur 
 elementum, magna vitae commodo egestas, turpis lorem sollicitudin  
lorem, ac auctor sapien lacus a orci. Quisque ornare est id sem.  
Maecenas placerat, justo in suscipit adipiscing, ante metus ultricies  
augue, ac sodales eros sapien luctus arcu. Pellentesque lobortis quam  
non massa. Pellentesque habitant morbi tristique senectus et netus et  
malesuada fames ac turpis egestas. </p>
  <p>Nunc ac orci. Class aptent taciti sociosqu ad litora torquent per  
conubia nostra, per inceptos hymenaeos. Nunc pharetra mauris et massa.  
Praesent cursus fermentum libero. Pellentesque lobortis justo et nulla  
dictum mollis. Morbi euismod nonummy lorem. Nulla at velit.  
Pellentesque risus risus, euismod eu, dictum id, iaculis id, tellus.  
Nullam interdum. Etiam pharetra mollis nisi. Pellentesque interdum,  
nulla quis fringilla lacinia, leo felis suscipit sem, ac iaculis turpis 
 mi sit amet urna. Nulla mi ante, vehicula non, lacinia a, ornare at,  
est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices  
posuere cubilia Curae; Praesent fringilla fermentum nulla. Nulla  
facilisi. Suspendisse sit amet odio. Etiam ultricies. Pellentesque  
nibh. Cras nisl. Nulla neque. </p>
</div>

<div class="footer_link">

<a name="footer" href="#top">GO TO HEADER</a>
<a href="#middle">GO TO MIDDLE</a>

  <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec 
diam  magna, consequat non, adipiscing quis, congue a, mauris. Duis 
convallis  leo quis metus. Aenean non nulla quis diam cursus ultricies. 
Vestibulum  sagittis. In porttitor est quis elit laoreet blandit. 
Quisque  condimentum eros id nulla. Pellentesque dui nisl, pretium eget,
  pellentesque nec, faucibus in, dui. Vestibulum quis mi. Maecenas 
turpis  enim, commodo eget, consectetuer ac, posuere in, nisl. Duis elit
 nunc,  molestie euismod, tempus at, condimentum at, nulla. </p>
  <p>Praesent eget lectus. Donec a nunc in dolor tincidunt rutrum.  
Phasellus ornare. Vestibulum pulvinar. Morbi massa erat, ornare sed,  
eleifend aliquet, imperdiet vitae, ligula. Ut nec diam. Phasellus dui  
felis, dignissim vitae, scelerisque ac, aliquam et, diam. Morbi arcu  
odio, mattis vel, euismod a, euismod ut, justo. Proin congue  
consectetuer diam. Maecenas bibendum est in ipsum. In cursus nibh.  
Proin sit amet nulla. Curabitur non lectus. Vivamus pharetra. Vivamus  
nec sem. Etiam a ante et sem scelerisque adipiscing. Curabitur  
sollicitudin. Nulla nec diam at odio fermentum hendrerit. </p>
  <p>Nunc quis ipsum. Sed suscipit bibendum ante. Phasellus facilisis  
commodo sapien. Nam vitae nibh quis lacus cursus cursus. Maecenas ac  
quam a libero adipiscing ultricies. Praesent at nisi ut lectus congue  
ullamcorper. Proin mattis enim vitae magna fermentum facilisis. Proin  
id lorem. Aenean ultrices nisi in enim. Aenean interdum, dolor id  
convallis suscipit, risus est posuere nulla, sed tincidunt est nibh ut  
enim. Praesent vel purus ac sapien iaculis placerat. Mauris nibh. In  
feugiat felis. </p>
  <p>Sed velit elit, rutrum nec, mattis vitae, aliquam eu, pede. Nulla  
orci nisl, tempor nec, tempor sed, congue rutrum, mauris. Nam sit amet  
ipsum sed risus auctor ornare. Nullam eleifend libero sit amet diam.  
Phasellus non eros. Nunc rutrum odio ut sapien. Phasellus ligula neque, 
 pulvinar non, venenatis id, pharetra eget, ante. Class aptent taciti  
sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. 
 Proin tortor ligula, dictum a, aliquet ac, vehicula sed, purus. Nulla  
egestas cursus erat. Sed sollicitudin. </p>
    <h2>Dezinerfolio</h2>
  <p>Praesent auctor, eros non varius dapibus, nibh risus molestie orci,
  et tincidunt justo est sit amet odio. Integer tincidunt feugiat urna. 
 Sed rutrum laoreet risus. Donec vel eros. Mauris laoreet tincidunt  
libero. Sed sit amet justo id nunc aliquam faucibus. Curabitur erat.  
Vivamus non nunc. Nunc orci sem, porttitor ultrices, iaculis id,  
placerat at, felis. Pellentesque ut mauris. Nunc libero arcu, bibendum  
vitae, hendrerit sit amet, vehicula sed, erat. Cum sociis natoque  
penatibus et magnis dis parturient montes, nascetur ridiculus mus.  
Proin ligula purus, viverra nec, tincidunt eget, venenatis nec, nisi. </p>
  <p>Class aptent taciti sociosqu ad litora torquent per conubia nostra,
  per inceptos hymenaeos. Maecenas viverra. Curabitur cursus metus non  
eros. Sed velit. In dapibus nisi sit amet nisl. Nulla aliquam, pede  
eget fermentum volutpat, elit sapien ultrices sem, a eleifend justo  
nisi eget purus. Praesent sit amet risus sagittis nisi aliquet  
eleifend. Sed placerat nulla vel quam. Sed sagittis nibh in augue  
vehicula aliquet. Suspendisse ac dui eu lacus viverra dictum. Curabitur 
 elementum, magna vitae commodo egestas, turpis lorem sollicitudin  
lorem, ac auctor sapien lacus a orci. Quisque ornare est id sem.  
Maecenas placerat, justo in suscipit adipiscing, ante metus ultricies  
augue, ac sodales eros sapien luctus arcu. Pellentesque lobortis quam  
non massa. Pellentesque habitant morbi tristique senectus et netus et  
malesuada fames ac turpis egestas. </p>
  <p>Nunc ac orci. Class aptent taciti sociosqu ad litora torquent per  
conubia nostra, per inceptos hymenaeos. Nunc pharetra mauris et massa.  
Praesent cursus fermentum libero. Pellentesque lobortis justo et nulla  
dictum mollis. Morbi euismod nonummy lorem. Nulla at velit.  
Pellentesque risus risus, euismod eu, dictum id, iaculis id, tellus.  
Nullam interdum. Etiam pharetra mollis nisi. Pellentesque interdum,  
nulla quis fringilla lacinia, leo felis suscipit sem, ac iaculis turpis 
 mi sit amet urna. Nulla mi ante, vehicula non, lacinia a, ornare at,  
est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices  
posuere cubilia Curae; Praesent fringilla fermentum nulla. Nulla  
facilisi. Suspendisse sit amet odio. Etiam ultricies. Pellentesque  
nibh. Cras nisl. Nulla neque. </p>
</div>

</body>
</html>
?

方案三: Jquery

?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jquery.scrollto演示</title>
    <script type="text/javascript" src="js/jquery-1.2.6.pack.js"></script>
    <script type="text/javascript" src="js/jquery.scrollto.pack.js"></script>
    <script type="text/javascript">
    $(function(){
        $("#scrollto_bottom").click(function(){
            $('#bottom').ScrollTo(1000);
            return false;//此句不能少,如果禁用js,将走普通的锚点跳转方式
        });
        
        $("#scrollto_top").click(function(){
            $('#top').ScrollTo(800);
            return false;//此句不能少,如果禁用js,将走普通的锚点跳转方式
        });
    }); 
    
    </script>
</head>
<body>

<div id="top" style="border:solid 1px red; height:1600px; width:200px;">
<a id="scrollto_bottom" href="#bottom">到底部(速度1000)</a>
</div>

<div id="bottom" style="border:solid 1px red; height:200px;">
	我是底部<br/>
	<a id="scrollto_top" href="#top">到头部(速度800)</a>
	</div>
</body>
</html>
?

?

?

  相关解决方案