<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>刘钢 - 我是UED &#187; 回到顶部</title>
	<atom:link href="http://www.iamued.com/tag/%e5%9b%9e%e5%88%b0%e9%a1%b6%e9%83%a8/feed" rel="self" type="application/rss+xml" />
	<link>http://www.iamued.com</link>
	<description>http://www.IamUED.com</description>
	<lastBuildDate>Tue, 07 Sep 2010 08:30:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>关于top置顶的交互体验</title>
		<link>http://www.iamued.com/qianduan/816.html</link>
		<comments>http://www.iamued.com/qianduan/816.html#comments</comments>
		<pubDate>Fri, 18 Dec 2009 13:41:53 +0000</pubDate>
		<dc:creator>RichieLiu</dc:creator>
				<category><![CDATA[JavaScript脚本]]></category>
		<category><![CDATA[交互设计]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[交互]]></category>
		<category><![CDATA[回到顶部]]></category>

		<guid isPermaLink="false">http://www.iamued.com/?p=816</guid>
		<description><![CDATA[“TOP置顶”这个大家我想都不陌生，一般都用在网站底部，起到快速返回页面顶部的作用，节省用户浏览页面的时间。
谈谈我的一些体验吧！
先看当下一些的网站对“top置顶”的应用:
大家熟悉的QQ校友


QQ空间

他们都有一个共同的体验，那就是给用户一个缓冲的过程，而不是直接飙到顶部。
大多的网站应用方式都是直接给个空的链接，如：href=”#”;这样的置顶很僵硬，很呆板。
本博客底部就用到的缓冲的体验效果，大家不妨看完本文去体验一下哦
说了这么多，还没告诉大家如何去实现，方法有点小难度，当然对于js比较牛的人来说，那就小菜一碟了。。
只看代码：

/**
 * 回到页面顶部
 * @param acceleration 加速度
 * @param time 时间间隔 (毫秒)
 **/
function goTop(acceleration, time) {
	acceleration = acceleration &#124;&#124; 0.1;
	time = time &#124;&#124; 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 &#124;&#124; 0;
		y1 = document.documentElement.scrollTop &#124;&#124; 0;
	}
	if (document.body) {
		x2 = [...]]]></description>
			<content:encoded><![CDATA[<p><strong>“TOP置顶”</strong>这个大家我想都不陌生，一般都用在网站底部，起到快速返回页面顶部的作用，节省用户浏览页面的时间。</p>
<p>谈谈我的一些体验吧！</p>
<p>先看<strong>当下</strong>一些的网站对<strong>“top置顶”</strong>的应用:</p>
<p>大家熟悉的QQ校友</p>
<p><img src="http://www.iamued.com/wp-content/uploads/auto_save_image/2009/12/214155zPp.png" alt="null" /><br />
<span id="more-816"></span><br />
QQ空间</p>
<p><img src="http://www.iamued.com/wp-content/uploads/auto_save_image/2009/12/214158QDM.png" alt="null" /></p>
<p>他们都有一个共同的体验，那就是给用户一个缓冲的过程，而不是直接飙到顶部。</p>
<p>大多的网站应用方式都是直接给个空的链接，如：href=”#”;这样的置顶很僵硬，很呆板。</p>
<p>本博客底部就用到的缓冲的体验效果，大家不妨看完本文去体验一下哦</p>
<p>说了这么多，还没告诉大家如何去实现，方法有点小难度，当然对于js比较牛的人来说，那就小菜一碟了。。</p>
<p>只看代码：</p>
<pre class="brush: jscript;">
/**
 * 回到页面顶部
 * @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 &gt; 0 || y &gt; 0) {
		var invokeFunction = &quot;goTop(&quot; + acceleration + &quot;, &quot; + time + &quot;)&quot;;
		window.setTimeout(invokeFunction, time);
	}
}
</pre>
<p>调用：</p>
<pre class="brush: jscript;">
&lt;a href=&quot;javascript:void(0);&quot; onclick=&quot;goTop();return false;&quot;&gt;TOP&lt;/a&gt;
</pre>
<p><a href="http://www.iamued.com/demo/top.html" target="_blank">查看DEMO</a></p>
<h2  class="related_post_title">您可能还关注的？</h2><ul class="related_post"><li><a href="http://www.iamued.com/qianduan/js/1718.html" title="[原创]简单的模板替换机制-jquery实现了局部">[原创]简单的模板替换机制-jquery实现了局部</a></li><li><a href="http://www.iamued.com/qianduan/js/1715.html" title="[转]js中匿名函数的N种写法">[转]js中匿名函数的N种写法</a></li><li><a href="http://www.iamued.com/qianduan/1645.html" title="javascript线程解释（setTimeout,setInterval你不知道的事）">javascript线程解释（setTimeout,setInterval你不知道的事）</a></li><li><a href="http://www.iamued.com/interaction/1618.html" title="弹出窗口[浮层]与切换页面的对比总结">弹出窗口[浮层]与切换页面的对比总结</a></li><li><a href="http://www.iamued.com/qianduan/1612.html" title="太NB了：Google Docs Ctrl + C 技术浅析">太NB了：Google Docs Ctrl + C 技术浅析</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.iamued.com/qianduan/816.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
