jQuery视差滚动效果网页实现方法经验总结


Posted in Javascript onSeptember 29, 2016

本文总结分析了jQuery视差滚动效果网页实现方法。分享给大家供大家参考,具体如下:

首先说两个核心函数,当然是基于jQuery的:

1、$(document).scrollTop() ;

该函数主要是返回页面当前顶部距离页面顶部的像素值,是一个非负整数。

2、$(window).scroll();

该事件是监控页面是否滚动,一旦滚动则触发其回调函数。

由此两个函数,我们得到下面的代码:

$(window).scroll(function() {
var top = $(document).scrollTop();
if (top == 100) alert(top);
});

以上代码的意思是:当页面滚动时,检查当前顶部距离页面起始之间的像素是否为100,是则弹出消息框。

当能判断滚动的距离后,就可以进行其他的操作了。剩下的就是各种css的定位了。

在制作页面的时候,我们要确定那些图片是需要进行视差滚动的。对于每个图片,我们都需要将CSS属性定义为

position: absolute;

此刻该div会漂移到页面的左上角,当然最好写上 left: 0px; top: 0px;还有该div的宽度和高度,有必要的话,需要写上overflow和background,所有的图片都应该是png格式的,这个大家懂的。

设置好属性后,就进行定位div的起始位置。也就是修改left和top,有必要的话可以修改right和bottom。

等以上工作完成后,就可以进行动画设置了。

用到的函数就是css了,我是这样设置的:

$('#text1').css('top', text1_top-parseInt(s_top)*0.15+'px');

以上代码放在scroll()函数内,只要监测到页面滚动就开始执行。其中 s_top 是当前的滚动距离,之前提到过。text1_top 是 $('#text1')的原始位置,且当页面加载后,就需要读取。一般用:

var text1_top = $('#text1').offset().top;

获取,不能放在scroll()函数内。

现在就开始叙述视差滚动原理了:

当页面加载完毕后,得到$('#text1')距离页面顶部的高度,并赋值给text1_top。

当页面滚动事件触发后,执行 $('#text1').css('top', text1_top-parseInt(s_top)*0.15+'px') 语句,意思是:随着页面往下的滚动,将text1的顶部距离减去当前移动距离的0.15倍。也就是说页面每往下移动100个像素,text1只往上移动15个像素,以此类推。这里的减号需要注意,如果是加号,那就是往下移动15个像素。换句话说,加号是同向,减号是反向。

当页面滚动到某个距离后才进行触发,我的写法是判断:

if (s_top > 200) {
$('#text1').css('top', text1_top-parseInt(s_top - 200)*0.15+'px');
}

当滚动距离到200像素时,运行后面的语句:这里有一个不同是s_top - 200,这里是基数从0开始算,如果没有减200,那么这个基数就不是0,而是200。那么#text1的视差滚动也不会正确的。

最后,我想说一下offset函数,他的主要目的是确定当前元素所在的left和top的数值。我们之前说过用 position: absolute; 来进行div的设置,如果div没有设置这个,但需要滚动的话,那么必须首先用offset函数确定某个元素的left和top后,用css函数首先赋值给需要定位的元素(一定要在设置position: absolute;之前),再设置该元素为 position: absolute; 这个也是需要在scroll()函数之外进行的。

编写视差滚动页面的时候,最大的体会就是要思路清晰,再次就是注意运行的顺序,有时候需要用到回调函数。

需要有个相对安静的环境去写代码,精神要放松,这样效率才会更高,需要休息的时候就要休息,写代码时要一气呵成。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
jQuery入门第一课 jQuery选择符
Mar 14 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 Javascript
简单实现js悬浮导航效果
Feb 05 Javascript
详解Vue 非父子组件通信方法(非Vuex)
May 24 Javascript
详解VUE 数组更新
Dec 16 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
JS的时间格式化和时间戳转换函数示例详解
Jul 27 Javascript
js仿小米官网图片轮播特效
Sep 29 #Javascript
基于jquery实现弹幕效果
Sep 29 #Javascript
js获取Get值的方法
Sep 29 #Javascript
js带闹铃功能的倒计时代码
Sep 29 #Javascript
JavaScript实现通过select标签跳转网页的方法
Sep 29 #Javascript
运用js教你轻松制作html音乐播放器
Apr 17 #Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 #Javascript
You might like
短波收音机简介
2021/03/01 无线电
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
PHP 数组基础知识小结
2010/08/20 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
React组件的三种写法总结
2017/01/12 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Django实现学员管理系统
2019/02/26 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python 两种方法删除空文件夹
2020/09/29 Python
理工学院学生自我鉴定
2014/02/23 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
项目负责人岗位职责
2015/02/15 职场文书
地道战观后感2000字
2015/06/04 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers