视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。作为今年网页设计的热点趋势,越来越多的网站应用了 这项技术。现在越来越多的网站采用视差水平滚动来创建绚丽的效果,其实这样的效果使用jquery实现的,上一次我发布了一篇使用这个效果做的网站,《40个视差滚动效果网站的新技术应用》,今天就给大家分享一下这样的效果实现原理,下一次在做网站的时候你就可以使用这样的效果作出绚丽的效果

Demo

1 – 创建基本的html

首先创建最基本的html文件架构 ,这个就不多说了,代码如下:

<div id="header"><h1 id="logo">Clouds demo</h1><ul id="menu"><li><a href="#box1" class="link">Home</a></li><li><a href="#box2" class="link">Box 2</a></li><li><a href="#box3" class="link">Box 3</a></li><li><a href="#box4" class="link">Box 4</a></li></ul></div><!-- end header --><div id="wrapper"><ul id="mask"><li id="box1" class="box"><a name="box1"></a><div class="content"><div class="inner">主页</div></div></li><!-- end box1 --><li id="box2" class="box"><a name="box2"></a><div class="content"><div class="inner">Box 2</div></div></li><!-- end box2 --><li id="box3" class="box"><a name="box3"></a><div class="content"><div class="inner">Box 3</div></div></li><!-- end box3 --><li id="box4" class="box"><a name="box4"></a><div class="content"><div class="inner">Box 4</div></div></li><!-- end box4 --></ul><!-- end mask --></div><!-- end wrapper -->

定义一个header的ID标记,然后下面有个四个导航,用于切换的

2 – 一些CSS代码

创建一个新的CSS文件 ,把它定义成layout.css

/*** Style Definitions ***/
html                { background:#67b2ff; font-family:Arial, Helvetica, sans-serif; }/*** Header ***/
h1#logo                { background:url(../images/Logo.png) top left no-repeat; height:62px; width:481px;text-indent:-9999px; position:absolute; top:10px; left:10px; }#menu                { float:right; position:absolute; top:20px; right:10px; z-index:10; }#menu a                { background:#FFF; color:#67b2ff; border:#AAA 3px solid;  text-decoration:none; padding:10px;margin-right:10px; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px;}#menu a:hover        { background:#67b2ff; color:#FFF; border:#FFF 3px solid; text-decoration:none; padding:10px;margin-right:10px; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px;}#menu li            { float:left; }/*** Body Content ***/
#wrapper    { width:100%; height:100%; position:absolute; top:0; left:0; overflow:hidden; }#mask        { width:400%; height:100%; }.box        { width:25%; height:100%; float:left; }.content    { width:960px; height:400px; top:20%; margin: 0 auto; position:relative; background:rgba(255,255,255, 0.3);border-radius:35px; -moz-border-radius:35px; -webkit-border-radius:35px; }.inner        { width:920px; height:360px; background:rgba(255, 255, 255, 0.3); border-radius:30px; -moz-border-radius:30px;-webkit-border-radius:30px; margin:5px; padding:15px; top:5px; position:relative; }

这些CSS代码相信你能看到吧,我简单解释一下 ,我们把需要滚动的区域放在id为wrapper的DIV内,无论他在那个地方一定要保证他滚动的固定性。id为mask的标记做为具体的滑动实现,他的 宽度是100%,因为这里有4个区域需要全屏滚动,所以他的宽度设置为400

我们想让每个方形盒子在屏幕的中间,所以给每个方形盒子定义一个li元素哦。然后定义CSS3 border-radius圆角和rgba背景颜色来创建一个半透明的漂亮边框圆角效果,到这里为止创建的效果如下所示

第3步 - 使用jQuery来创建效果

上面基本的网站架构做好之后并没有使用javascript,现在我们开始使用jquery创建有趣的滚动效果,我们使用ScrollTo的jquery插件来达到我们想要的效果,首先引入jquery文件

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="http://flesler-plugins.googlecode.com/files/jquery.scrollTo-1.4.2-min.js"></script>

然后打开这个文件看到最基本的jquery语法

$(document).ready(function() {  $('a.link').click(function () {  $('#wrapper').scrollTo($(this).attr('href'), 800);return false;  });  });

就这么简单,看看这个代码做个什么

  • 1,确保整个页面加载之前运行脚本。
  • ,增加了点击监听所有<a>标签。在这种情况下,这是我们的导航菜单中的所有链接,但我们可以添加“链接”类行为的任何页面上的链接。然后,我们指定一个动作,点 击检测功能。
  • 呼吁#包装的div的scrollTo插件,并传递给它的目的地,并以毫秒为单位的时间来完成动画。
  • 4取消点击浏览器的默认行为。

现在我们知道如何滚动一个特定的div的内容,让我们在头部背景增加自己的DIV内容

<div id="cloud1" class="clouds"><div id="clouds-small"></div>
</div><!-- end clouds -->
<div id="cloud2" class="clouds"><div id="clouds-big"></div>
</div><!-- end clouds -->

增加CSS效果代码

/*** Clouds ***/
.clouds        { width:100%; height:262px; overflow:hidden; }
#clouds-small    { width:3000px; height:100%; background:url(../images/bg-clouds-small.png) repeat-x;}
#cloud2        { position:relative; top:-262px; }
#clouds-big    { width:4000px; height:100%; background:url(../images/bg-clouds-big.png) repeat-x;}

上面的代码,我增加了尺寸和背景图片的div,全屏宽度,以适应滚动和定位,效果如下图

第4步 - 完成所有的动作

我们几乎完成了!之前,我使用了scrollTo插件来进行移动,我需要写一个小的辅助功能,将告诉它移动定位到那个DIV。将有4点,我们需要设置,

function setPosition(check, div, p1, p2, p3, p4) {if(check==='#box1'){$(div).scrollTo(p1, 800);}else if(check==='#box2'){$(div).scrollTo(p2, 800);}else if(check==='#box3'){$(div).scrollTo(p3, 800);}else{$(div).scrollTo(p4, 800);}
};
$(document).ready(function() {  $('a.link').click(function () {  $('#wrapper').scrollTo($(this).attr('href'), 800);//add this linesetPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')//end add thisreturn false;  });
});

到这里每个云将移动400个像素,看他们之间的差异像素大小

$(document).ready(function() {  $('a.link').click(function () {  $('#wrapper').scrollTo($(this).attr('href'), 800);setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')//add this linesetPosition($(this).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px')//end add thisreturn false;  });
});

添加后续的云div,注意这里的div设置成800个像素了,这点需要大家注意

$(document).ready(function() { $('a.link').click(function () { $('#wrapper').scrollTo($(this).attr('href'), 800);setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')setPosition($(this).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px')//add this$('a.link').removeClass('selected'); $(this).addClass('selected');//end add thisreturn false; });
});
#menu a.selected {
background:#AAA;
color:#FFF;
border:#67b2ff 3px solid;
text-decoration:none;
padding:10px;
margin-right:10px;
border-radius:10px;-moz-border-radius:10px;
-webkit-border-radius:10px;
}

这个是css边框圆角效果 ,下面是演示效果,源码的话留下邮箱给你发邮箱里面去

  • Demo

来源:http://www.cnblogs.com/58top/archive/2012/08/09/effect_using_jquery.html

jquery实现的视差滚动教程(视差大背景效果)相关推荐

  1. 基于jquery的锚点滚动插件(百度百科效果) anchorScroll.js

    1.插进使用场景 请打开https://baike.baidu.com/item/日本动画#hotspotmining,查看百度百科页面效果. 2.插件源代码(更新 2017-08-28): jQue ...

  2. html实现新闻滚动效果,jQuery实现新闻播报滚动及淡入淡出效果示例

    这篇文章主要介绍了jQuery实现新闻播报滚动及淡入淡出效果,结合实例形式分析了基于jQuery插件的页面元素动态变换相关操作技巧,需要的朋友可以参考下 本文实例讲述了jQuery实现新闻播报滚动及淡 ...

  3. 视差滚动教程、实现方法、源代码

    最近很流行"视差滚动"效果,抛开设计不说,前端上的实现方法很有意思,国内详细的教程不多,所以自己研究别人网站,实践总结. 一.例子 SmaShing Spark QQ浏览器 二.原 ...

  4. html5页面滚动视差效果特,34个网页视差滚动插件和视差特效教程分享

    34个网页视差滚动插件和视差特效教程分享 Sponsor 视差滚动这个设计趋势从去年开始一直流行到现在,这个特效的视觉体验非常不错,比如前面分享的<19个创意网页设计欣赏>文章,有很多使视 ...

  5. 视差滚动(Parallax Scrolling)效果的原理和实现

    视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验.作为今年网页设计的热点趋势,越来越多的网站应用了这项技术. 可以先看看效果: ...

  6. 视差滚动不适合网页的5个原因

    @OpzoonUED 翻译,原文出自于smashinghub.com.列举缺点之前,首先我们要看看什么是视差滚动. 视差效果,原本是一个天文学术语,当我们观察星空时,离我们远的星星移动速度较慢,离我们 ...

  7. html轮播图水平传送带,这10个教科书级的网页,帮你搞明白视差滚动特效

    在视差滚动网页的设计上,无论是移动端还是桌面端,如今的设计师都有了足够深入的探索,并且对于功能和体验上的挖掘,都有了比较成熟的经验.无论是导航悬停式的滚动还是水平滚动和分屏3D特效,视差滚动这一设计趋 ...

  8. 视差滚动的爱情故事之优化篇

    上篇博客链接:视差滚动的爱情故事 [优化问题 : 解决Chrome下跳动的bug] 在上一篇的爱(diao)情(si)故事里面,demo3在 Chrome下是这样的问题:鼠标滚动视差元素动画生硬,鬼畜 ...

  9. 推荐六款帮助你实现惊艳视差滚动效果的 jQuery 插件

    视差(Parallax)是指从不同的点看一个物体时形成的视觉差异,这个名词是源自希腊文的παράλλαξις (parallaxis),意思是"改变".在网页设计中,视差滚动(Pa ...

最新文章

  1. 我收集的学习网址,O(∩_∩)O~
  2. C语言有序数组转为平衡的二叉树(附完整源码)
  3. 高德软件测试工资,【高德工资】软件测试工程师待遇-看准网
  4. linux 备份数据,LINUX下备份数据
  5. 从零入门Serverless|一文搞懂函数计算及其工作原理
  6. php 表情选择,php imagettftext和特定的表情符号
  7. SQL Union和Union All使用方法
  8. 全频音箱与分频音箱各有什么优缺点
  9. 隐藏在你电脑里面的电影
  10. LeetCode 209. 长度最小的子数组(双指针+滑动窗口)
  11. 电力系统非线性控制_电力系统保护与控制2020年第13期目录
  12. 网卡MAC地址是什么?
  13. Java随笔记录第五章:类设计基础
  14. 最重要的两种思维:逻辑思维与结构化思维
  15. Cadence学习三:如何快速的建立artwork层?
  16. 认真学习MySQL的事务日志-Redo日志
  17. DSConv:Efficient convolution operator
  18. jmeter参数化之函数助手
  19. 【5G核心网】5G概念以及名词缩写解释
  20. java 日期格式化 24小时_SimpleDateFormat转换时间,12,24时间格式

热门文章

  1. 乘方计算(信息学奥赛一本通-T1069)
  2. 信息学奥赛C++语言:分糖果
  3. 16 PP配置-生产计划-主数据-定义MRP区域
  4. 35 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义在产品和废品的评估变式 (目标成本)
  5. 事务对性能影响_MySQL数据库性能优化史诗级大总结
  6. linux系统中怎么复制,linux下如何屏幕拷贝?
  7. 一个软件网络连接异常_你的电脑运转正常吗?这 10 款系统监控软件能告诉你答案...
  8. C++:加载图片资源
  9. 操作系统(李治军) L8 CPU管理的直观想法
  10. [Unity][FlowCanvas] FlowScript 实现切换当前 CineMachine 摄像机