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

 更新时间:2016年09月29日 15:01:20   作者:山猫的博客  
这篇文章主要介绍了jQuery视差滚动效果网页实现方法,结合实例形式总结分析了jQuery滚动效果的实现步骤、操作技巧及相关注意事项,需要的朋友可以参考下

本文总结分析了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相关内容感兴趣的读者可查看本站专题:《jQuery窗口操作技巧总结》、《jQuery拖拽特效与技巧总结》、《jQuery常用插件及用法总结》、《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结

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

相关文章

  • jquery.combobox中文api和例子,修复了上面的小bug

    jquery.combobox中文api和例子,修复了上面的小bug

    关于jquery.combobox,这个jquery的插件从官网上直接下载下来使用还有bug,以下是我对其api做的简单翻译,而且修复了上面的bug。
    2011-03-03
  • 超漂亮的jQuery图片轮播特效

    超漂亮的jQuery图片轮播特效

    这篇文章为大家分享了超漂亮的jQuery图片轮播特效,支持Ajax加载数据,响应式布局,支持移动端触屏,功能强大,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • jQuery 导航自动跟随滚动的实现代码

    jQuery 导航自动跟随滚动的实现代码

    这篇文章主要介绍了jQuery 导航自动跟随滚动的实现代码,需要的朋友可以参考下
    2018-05-05
  • 自定义刻度jQuery进度条及插件

    自定义刻度jQuery进度条及插件

    自定义刻度jq进度条可以自定义进度条刻度圆点数量,大小等相关属性,可以通过css控制圆点的外观样式,通过progressdots插件自定义刻度动画,使用该插件还需引入jquery,jquery.progressdots.js和jquery.progressdots.css文件。需要的朋友一起学习吧
    2015-09-09
  • jquery京东商城双11焦点图多图广告特效代码分享

    jquery京东商城双11焦点图多图广告特效代码分享

    这篇文章主要介绍了jquery京东商城双11焦点图多图广告特效,一个精致的焦点图会吸引用户的注意力,让用户产生浏览网站的兴趣至关重要,现在小编推荐给大家一款特别棒的焦点图,感兴趣的小伙伴可以参考下。
    2015-09-09
  • jquery中each方法示例和常用选择器

    jquery中each方法示例和常用选择器

    这篇文章主要介绍了jquery中each方法使用及常用选择器都有哪些,需要的朋友,可以参考下
    2014-07-07
  • jQuery使用after()方法在元素后面添加多项内容的方法

    jQuery使用after()方法在元素后面添加多项内容的方法

    这篇文章主要介绍了jQuery使用after()方法在元素后面添加多项内容的方法,实例分析了jQuery中after方法的功能及在元素后面添加内容的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • jQuery 中DOM 操作详解

    jQuery 中DOM 操作详解

    这篇文章主要介绍了jQuery 中DOM 操作详解,需要的朋友可以参考下
    2015-01-01
  • jQuery中dequeue()方法用法实例

    jQuery中dequeue()方法用法实例

    这篇文章主要介绍了jQuery中dequeue()方法用法,实例分析了dequeue()方法的功能、定义、使用技巧与相关注意事项,具有一定参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • jQuery实现鼠标拖动div改变位置、大小的实践

    jQuery实现鼠标拖动div改变位置、大小的实践

    这篇文章主要介绍了jQuery实现鼠标拖动div改变位置、大小的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论