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 相关文章推荐
JavaScript 基础篇之对象、数组使用介绍(三)
Apr 07 Javascript
jquery中prop()方法和attr()方法的区别浅析
Sep 06 Javascript
Jquery实现的一种常用高亮效果示例代码
Jan 28 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
jQuery+CSS3实现3D立方体旋转效果
Nov 10 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
Dec 03 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
jQuery pjax 应用简单示例
Sep 20 jQuery
Vuex实现购物车小功能
Aug 17 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
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
Vue.js实现分页查询功能
2020/11/15 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
员工拾金不昧表扬信
2014/01/09 职场文书
班级安全教育实施方案
2014/02/23 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
高中班级口号
2014/06/09 职场文书
献爱心标语
2014/06/21 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书