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 相关文章推荐
深入理解JavaScript定时机制
Oct 29 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
js 金额文本框实现代码
Feb 14 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
js实现不提交表单获取单选按钮值的方法
Aug 21 Javascript
jQuery实现可编辑的表格实例讲解(2)
Sep 17 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
JavaScript中while循环的基础使用教程
Aug 11 Javascript
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
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
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
PHP7修改的函数
2021/03/09 PHP
UserData用法总结 lanyu出品
2010/07/01 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
python中元类用法实例
2014/10/10 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python单元测试与测试用例简析
2019/11/09 Python
python计算无向图节点度的实例代码
2019/11/22 Python
简单的命令查看安装的python版本号
2020/08/28 Python
Joules美国官网:出色的英国风格
2017/10/30 全球购物
满月酒答谢词
2014/01/14 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
青蓝工程实施方案
2014/03/27 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
交通事故协议书范本
2014/11/18 职场文书
使用pytorch实现线性回归
2021/04/11 Python
详解python网络进程
2021/06/15 Python
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers
如何Tomcat中使用ipv6地址
2022/05/06 Servers