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控制iFrame(实例代码)
Nov 19 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
require简单实现单页应用程序(SPA)
Jul 12 Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 Javascript
理解JavaScript原型链
Oct 25 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
解决Vue-cli无法编译es6的问题
Oct 30 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
德劲1103二次变频版的打磨
2021/03/02 无线电
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
PHP的PDO连接讲解
2019/01/24 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
js电话号码验证方法
2015/09/28 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
详解Python中的正则表达式
2018/07/08 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
红旗团支部事迹材料
2014/01/27 职场文书
厂长岗位职责
2014/02/19 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
语文教师求职信范文
2015/03/20 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python