jQuery实现页面内平滑回到顶部的过程分析及实现方法

标签: 建站心得 网络杂记 animate CSS jquery | 发表时间:2013-05-06 17:04 | 作者:奶牛
出处:http://www.nenew.net

 

jQuery可以实现一些很绚丽的网页效果,比如淡入淡出还有滑动效果等,它的动画自定义也很强大,animate()功能很出色,今天奶牛跟大家一起来看看那些网页中的回到顶部或者回到底部如何用jQuery来实现平滑滚动。

首先,我们需要知道,我们的滚动要到达的目的地,比如一个页面内的元素,我们要知道它距离窗口顶部的位置。这样子,比如我们的header的id就是header,footer的id就是footer。那么我们可以通过offset()方法来获得一个top跟left值。

  
  1. $('#header').offset() 
  2. $('#footer').offset() 

因为我们需要的是页面上下滚动,所以我们只需要offset()方法来获得的top值

  
  1. $('#header').offset().top 
  2. $('#footer').offset().top 

现在目的地已经有了,那么我们将来实现到达目的地的方法,就是scrollTop()方法,这个方法在没有参数的情况下,返回一个当前滚动距离top顶端的值,如果scrollTop(value)的话,我们将直接滚动到页面的那个位置

  
  1. $(window).scrollTop($('#header').offset().top) 
  2. $(window).scrollTop($('#footer').offset().top) 

这样子的实现太过僵硬,因为是直接到达目的地,所以我们下一步就是为它添加动画效果

  
  1. $('html').animate({scrollTop:$('#header').offset().top},800); 
  2. $('html').animate({scrollTop:$('#footer').offset().top},800); 

其中的800是动画持续的时间,在持续时间之后我们还可以增加’ swing‘或者’linear’

  
  1. $('html').animate({scrollTop:$('#header').offset().top},800,'swing');  
  2. $('html').animate({scrollTop:$('#footer').offset().top},800,'linear');  

具体效果可以自己测试下,linear是匀速的运动,默认是swing

这样子,我们需要的功能就已经实现了。比如你可以固定一个元素并未其进行监听,然后当点击的时候执行上面的jquery代码。

  
  1. $(document).ready(function(){ 
  2.     $('#scroll').hide(); 
  3.     $(window).scroll(function() { 
  4.         if($(window).scrollTop() >= 100){ 
  5.             $('#scroll').fadeIn(400); 
  6.         } 
  7.         else 
  8.         { 
  9.             $('#scroll').fadeOut(200); 
  10.         } 
  11. }); 

下面的一段代码可以实现,当页面的滚动超过100px的时候,就会展现id为scroll的元素,如果不超过的话就隐藏。

参考文章:

http://docs.jquery.com/CSS

http://docs.jquery.com/CSS/scrollTop

http://api.jquery.com/offset/

http://api.jquery.com/scrollTop/

http://api.jquery.com/animate/


本文链接地址: jQuery实现页面内平滑回到顶部的过程分析及实现方法

原创文章,转载请注明: 转载自 奶牛博客

相关 [jquery 页面 平滑] 推荐:

jQuery实现页面内平滑回到顶部的过程分析及实现方法

- - 奶牛博客
jQuery可以实现一些很绚丽的网页效果,比如淡入淡出还有滑动效果等,它的动画自定义也很强大,animate()功能很出色,今天奶牛跟大家一起来看看那些网页中的回到顶部或者回到底部如何用jQuery来实现平滑滚动. 首先,我们需要知道,我们的滚动要到达的目的地,比如一个页面内的元素,我们要知道它距离窗口顶部的位置.

js 和 jquery 获取页面和滚动条的高度

- - Web前端 - ITeye博客
js 和 jquery 获取页面和滚动条的高度 //页面位置及窗口大小 function GetPageSize() { var scrW, scrH; if(window.innerHeight && window.scrollMaxY) {. return {PageW:pageW, PageH:pageH, WinW:winW, WinH:winH}; }; //滚动条位置 function GetPageScroll() { var x, y; if(window.pageYOffset) {.

9 个单页面网站开发必备的 jQuery 插件

- - ITeye资讯频道
单页面网站作为简单快捷、易于维护的页面设计方案,越来越受到工作室、作品集或者个人博客类网站用户的青睐,我们可以使用不同的特效来使得页面更加的丰富和炫动. 今天我们将介绍几款可以作为单页面开发的jQuery插件,帮助大家快速简便的实现一个单页面的网站设计,希望大家喜欢. 使用这个插件,可以帮助你快速搭建一个滚动的页面导航,如果你需要比较简单直接的方式开发一个单页面的网站,这个插件是一个不错的选择.

jQuery参考实例 1.2 在DOM加载完毕,页面元素完全加载之前运行jQuery/JavaScript代码

- - CSDN博客推荐文章
本文翻译自jQuery Cookbook (O’Reilly 2009) 1.2 Executing jQuery/JavaScript Code After the DOM Has Loaded but Before Complete Page Load. 主流的JavaScript应用程序一般只在DOM完全加载后才运行JS代码.

8个实用的页面布局和用户界面jQuery插件

- - Jackchen Design 1984
网页设计师和网页开发人员在做项目的时候可能会有一些页面的布局或者对于UI有一些特定的要求. 可能一些需求不能单独使用CSS就能实现的. 于是很多时候开发人员都会消耗大量的时间和精力去写一些JS来协助实现. 其实如果你知道一些jQuery,你会发现这些jQuery非常的好用和灵活. 在这篇文章中我们分享了一些优秀实用的jQuery插件.

jquery实现滚动到页面底部时无限加载内容的代码

- - CSDN博客Web前端推荐文章
由于时间关系没有整理封装,有空的时候再把他做成一个插件. var p="{$other.p}"; if(p=="") p=1; var stop=true;//触发开关,防止多次调用事件 $(window).scroll(function() {. //当内容滚动到底部时加载新的内容 100当距离最底部100个像素时开始加载.

jquery实现页面滚动到最下方自动按分页的形式加载内容效果

- - ITeye博客
//此处的 scroll_body 是滚动的元素,就是在这个区域滚动会触发事件来加载新的内容. //这个是目标应该添加到的窗口是哪个,此处为 div的ID为scroll_items的div,新加的内容会追加到此元素内部的最后面. //此处为需要调用的内容,可以为api接口,直接调用,然后那个页面可以分别用分页的方式显示数据.

使用jQuery开发一个带有密码强度检验的超酷注册页面

- - 前端观察
在今天的 jQuery教程中,我们将介绍如何使用 jQuery和其它相关的插件来生成一个漂亮的带有 密码强度检验的注册页面,希望大家喜欢.   complexify – 一个密码强度检验 jQuery插件.   justgage – 一个兼容性良好的仪表盘类库. 注册中包含一个密码强度检验组件,用户需要设置一定强度的密码才可以注册.

JQuery 选择器

- - CSDN博客Web前端推荐文章
}

点击我

.    像上面这样把JavaSript代码和HTML代码混杂在一起的做法同样也非常不妥,因为它并没有将网页内容和行为分离,所以才有JQuery选择器的学习.

点击我

. //给class为demo的元素添加行为.

jquery操作xml

- - CSDN博客Web前端推荐文章
jquery真的很强大,虽然一直在用jquery,不用一直都没有深入,这几天重新学习了一下,不得不感叹她的强大,已经让我深深入迷. 这里记录一下,她是怎么快速地操作xml的.. 这里我们有一个xml文件:. jquery如何操作呢,总的思想,就是和操作dom差不多的方法. 首先我们获取这个文件的内容:(我先引入jquery库哈).