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 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
javascript弹性运动效果简单实现方法
Jan 08 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
EasyUI中在表单提交之前进行验证
Jul 19 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
Vue Spa切换页面时更改标题的实例代码
Jul 15 Javascript
Vue.js 单页面多路由区域操作的实例详解
Jul 17 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
Aug 30 Javascript
详解写好JS条件语句的5条守则
Feb 28 Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 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
类的另类用法--数据的封装
2006/10/09 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
图像替换新技术 状态域方法
2010/01/28 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
JS 控件事件小结
2012/10/31 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Python实现的knn算法示例
2018/06/14 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
有个性的自我评价范文
2013/11/15 职场文书
六年级学生评语
2014/04/22 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
使用Redis实现分布式锁的方法
2022/06/16 Redis