jQuery实现页面内锚点平滑跳转特效的方法总结


Posted in Javascript onMay 11, 2015

平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”。

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>jQuery实现页面内锚点平滑跳转</title><base target="_blank" /> 
<style type="text/css"> 
#hovertree { 
height: 800px; 
background: red; 
text-align:center;color:white; 
} 
 
#keleyi { 
height: 800px; 
background: green;text-align:center;color:white; 
} 
 
#myslider { 
height: 800px; 
background: black;text-align:center;color:white; 
} 
 
#zonemenu { 
height: 800px; 
background: yellow;text-align:center; 
} 
 
.keleyilink{position:fixed;} 
.keleyilink a {text-decoration:none;} 
</style> 
</head> 
<body> 
<div class="keleyilink"> 
<a href="javascript:scroll('hovertree');" target="_self">HoverTree</a> 
<a href="javascript:scroll('keleyi');" target="_self">KKK</a> 
<a href="javascript:scroll('myslider');" target="_self">myslider</a> 
<a href="javascript:scroll('zonemenu');" target="_self">ZoneMenu</a> 
</div> 
<div id="hovertree">hovertree 
<br /><br /><br /><a href="">原文</a> <a href="">JJJ</a> <a href="http://hovertree.com">HoverTree</a> <a href="/">特效库</a> 
</div> 
<div id="keleyi">3water</div> 
<div id="myslider">myslider</div> 
<div id="zonemenu">zonemenu</div> 
<script src="jquery/jquery-1.11.3.min.js"></script> 
<script src="jquery.hovertreescroll.js"></script> 
<script> 
function scroll(id) { 
$("#" + id).HoverTreeScroll(1000); 
} 
</script> 
</body> 
</html>

更简单点的实现方法:

代码只有一句话

$("html,body").animate({scrollTop: $("#elementid").offset().top}, 1000);

animate()方法用来实现一组css的自定义动画,有两种调用方法

第一种形式接受4个参数,如下所示

.animate( properties [, duration] [, easing] [, complete] )

properties ? 一个包含样式属性及值的映射
duration ? 可选的速度参数,既可以是预置的字符串,也可以是一个毫秒数值
easing ? 可选的缓动类型,jquery默认的只有两种:swing和linear,要使用其它效果需要安装缓动类的插件
complete ? 可选的回调函数,在动画结束时被调用

第一种形式的示例如下

.animate({property1: 'value1', property2: 'value2'},
    speed, easing, function() {
      alert('The animation is finished.');
    });

本文实现锚点跳转的代码使用了第一种形式

$("html,body")代表对html或body元素进行动画,即要改变他们的css属性值
scrollTop是要改变的属性值,表示滚动条滑过的距离,在这里表示向下拉动浏览器滚动条后html(body)被浏览器顶端隐藏的高度
$("#elementid").offset().top就是html(body)需要被浏览器顶端隐藏的高度,它代表id为elementid的元素顶端到网页顶端(不是浏览器可视区域顶端)的绝对距离。
1000是指动画时间为1秒

animate()方法还有第二种调用形式

.animate( properties, options )

一个是属性映射,一个是选项映射。实际上这里的第二个参数是把第一种形式的第2-4个参数封装在另一个映射中,同时又添加了两个选项。第二种形式的代码如下:

.animate({
  property1: 'value1',
  property2: 'value2'
}, {
  duration: 'value',
  easing: 'value',
  complete: function(){
    alert('The animation is finished.');
  },
  queue: boolen,
  step: callback
});

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jQuery实现的多选框多级联动插件
May 02 Javascript
浅谈document.write()输出样式
May 07 Javascript
js继承实现方法详解
Dec 16 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
数组Array的排序sort方法
Feb 17 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
Dec 20 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
vue登录页面cookie的使用及页面跳转代码
Jul 10 Javascript
一步一步实现Vue的响应式(对象观测)
Sep 02 Javascript
vue中的计算属性和侦听属性
Nov 06 Javascript
javascript实现验证IP地址等相关信息代码
May 10 #Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 #Javascript
javascript实现获取字符串hash值
May 10 #Javascript
Javascript实现计算个人所得税
May 10 #Javascript
AngularJS基础知识笔记之表格
May 10 #Javascript
AngularJS基础知识笔记之过滤器
May 10 #Javascript
浅谈下拉菜单中的Option对象
May 10 #Javascript
You might like
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
js实现漫天星星效果
2017/01/19 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
js实现简单页面全屏
2019/09/17 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python实现简单多人聊天室
2018/12/11 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
国贸专业个人求职信分享
2013/12/04 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
预备党员介绍人意见
2015/06/01 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书