用 Stellar.js 制作视差滚动效果

简介: 近些年讨论得很热烈的设计趋势是视觉差滚动效果。不管你喜不喜欢,很多网站都在用它。在本教程中,我会介绍视觉差滚动和用jQuery插件Stellar.js来制作视觉差滚动效果。

近些年讨论得很热烈的设计趋势是视觉差滚动效果。不管你喜不喜欢,很多网站都在用它。在本教程中,我会介绍视觉差滚动和用jQuery插件Stellar.js来制作视觉差滚动效果。


视差滚动(Parallax Scrolling)是什么?

视差滚动是当用户滚动页面时,前景和背景以不同的速度移动,从而创造出3D效果。 这种效果可以给网站一个很好的补充,但如果滥用,就会很烦人。 有些完全由这种效果驱动的网站会让人觉得不优雅。 因为这种效果通常使用大图像做背景,网站资源大量增加,导致加载非常缓慢。

有些这样滥用的例子,比如介绍Kinvara saukoni 3的网站, 和大小有20MB(以前是50MB的!)的 Oakley – I am invincible

现在有了对这个效果的认识,让我们看看如何使用stellar.js来创造它。


Stellar.js是什么?

stellar.js 是一个 jQuery插件,能很容易地给网站添加视差滚动效果。 尽管已经停止了维护,但它非常稳定,与最新版本的jQuery兼容,很多开发者也在使用它。 这个插件在jQuery插件库里很流行,你可能早已听说过了。

现在,让我们看看如何使用它。


Stellar.js入门

Stellar.js很容易上手。 第一步是下载插件并将它链接到你的页面。 可以通过Bower访问Stellar.js的GitHub 仓库。 如果你想使用Bower,可以通过以下命令:

bower install jquery.stellar

下载好后,在页面中引用:

<scriptsrc="path/to/jquery/jquery.min.js"></script>

<scriptsrc="path/to/jquery.stellar.min.js"></script>

完成后,开始给页面添加视觉差滚动效果。 这个插件允许将效果添加到任何滚动的元素,例如window对象,或者其他元素。 要使用jQuery的选择器选中所需要的元素,在绑定stellar()方法即可。

$('#someElement').stellar();

对于window对象可以用下面的方法:

$.stellar();

这样,Stellar.js库就会在元素滚动时搜索parallax背景或元素,并重新定位。

在一个页面运用stellar.js创建一个视差滚动效果的示例


选项

stellar.js像其他插件一样有一定的灵活性。 可以设置很多参数来满足需求。 stellar.js允许定义普通选项,会应用到每个元素。 设置普通配置必须通过stellar()方法,而对应的元素要设置data-*属性。 我不一一介绍每个配置的用法,具体可以看这里

第一个普通选项是设置效果的方向。 经典的滚动效果是从上到下,或者反过来。也可以指定一个从左到右的效果,或者反过来。 通过设置horizontalScrollingverticalScrolling的bool值完成。 其默认值是true

另一个有趣的选项是responsive。 它是用来指定loadresize事件触发时,是否刷新页面。 默认是false

最后介绍一下hideDistantElements选项。 指定是否要隐藏移出视线的元素。 如果不想隐藏,就设置为false

单个元素选项中data-stellar-background-ratio比较常用。 接受一个正整数的值,可以改变它被应用到元素的影响速度。 例如,data-stellar-background-ratio="0.5"意味着改变速度为自然滚动速度的一半。 如果想使这个属性值低于1,建议在样式表里设置background-attachment: fixed;

现在你知道这个插件,你可以配置它,它的时间去看比赛。


演示

利用上面介绍的属性做一个例子。 首先,我们需要设置标记。 在下面的代码中将创建6个包含一些文本div

<divclass="content"id="content1">

   <p>TEXT HERE</p>

</div>

<divclass="content"id="content2">

   <p>TEXT HERE</p>

</div>

<divclass="content"id="content3"data-stellar-background-ratio="0.5">

   <p>TEXT HERE</p>

</div>

<divclass="content"id="content4"data-stellar-background-ratio="0.5">

   <p>TEXT HERE</p>

</div>

<divclass="content"id="content5"data-stellar-background-ratio="0.5">

   <p>TEXT HERE</p>

</div>

<divclass="content"id="content6"data-stellar-background-ratio="0.5">

   <p>TEXT HERE</p>

</div>

添加一些CSS: 在演示中将使用三个图像,每个重复两次。 因为要给最后桑元素添加data-stellar-background-ratio属性,所以还要设置background-attachment: fixed;

CSS代码如下所示:

body {

   font-size: 20px;

   color: white;

   text-shadow: 01px0 black, 005px black;

}

p {

   padding: 00.5em;

   margin: 0;

}

.content {

   background-attachment: fixed;

   height: 400px;

}

#content1 {

   background-image: url("http://www.tamperlock.com/blog/wp-content/uploads/2014/08/london-england.jpg");

}

#content2 {

   background-image: url("http://ocdn.eu/images/pulscms/ZjU7MDQsMCwzMiwzODQsMWZhOzA2LDMyMCwxYzI_/1eb29a70dabd0994cdefaad01ca3c884.jpg");

}

#content3 {

   background-image: url("http://www.zeus.aegee.org/magazine/wp-content/uploads/napoli-golfo-vesuvio.jpg");

}

#content4 {

   background-image: url("http://www.tamperlock.com/blog/wp-content/uploads/2014/08/london-england.jpg");

}

#content5 {

   background-image: url("http://ocdn.eu/images/pulscms/ZjU7MDQsMCwzMiwzODQsMWZhOzA2LDMyMCwxYzI_/1eb29a70dabd0994cdefaad01ca3c884.jpg");

}

#content6 {

   background-image: url("http://www.zeus.aegee.org/magazine/wp-content/uploads/napoli-golfo-vesuvio.jpg");

}

最后,我们需要踢的invokingstellar()启动效应。在这个演示中我们也会设置一些常用选项:

$.stellar({

   horizontalScrolling:false,

   responsive:true

});


效果:

https://jsfiddle.net/fb301gve/embedded/result/

相关文章
|
JSON 数据格式 容器
Layui 内置方法 - layer.photos(相册层)
Layui 内置方法 - layer.photos(相册层)
2075 0
|
机器学习/深度学习 人工智能 API
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
521 0
|
数据采集 JavaScript 前端开发
实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库
实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库
|
存储 Java API
如何在Spring Boot应用程序中使用华为云的OBS云存储来上传和删除图片?
如何在Spring Boot应用程序中使用华为云的OBS云存储来上传和删除图片?
690 1
node-sass 安装失败 rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libs
检查一下有没有配置python2.7环境变量 npm install -g node-gyp npm install --global --production windows-build-tools(通过管理员打开) npm i -g node-sass
637 1
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
FullStack Bench:字节豆包联合M-A-P社区开源的全新代码评估基准
FullStack Bench是由字节跳动豆包大模型团队与M-A-P社区联合推出的全新代码评估基准,专注于全栈编程和多语言编程能力评估。该基准覆盖超过11种真实编程场景,包含3374个问题,涉及16种编程语言,旨在更有效地衡量大模型在现实世界中的代码开发能力。
317 5
FullStack Bench:字节豆包联合M-A-P社区开源的全新代码评估基准
|
11月前
|
存储 数据可视化 BI
财务人必备!J 人在金融行业的 6 款宝藏办公软件?
在金融行业,高效的办公软件对团队协作和个人学习效率的提升至关重要。针对J型人格金融人注重计划和秩序的特点,推荐6款可视化协作工具:板栗看板、Trello、Asana、Monday.com、Wrike和Basecamp。这些软件具备直观界面、强大的任务管理、实时数据共享、灵活权限设置等功能,助力金融人在年终结算、客户服务和营销活动中事半功倍,提升整体工作效率和团队协作效果。选择合适的工具,为金融机构的发展贡献力量。
218 6
|
JavaScript
Vue2 sync 修饰符
本文介绍了Vue 2中`.sync`修饰符的用法,它是一种语法糖,用于简化父子组件之间的双向数据绑定,通过在子组件中触发以`update:`为前缀的事件来更新父组件中的数据。
281 20
|
JavaScript
video-08-videojs黑屏问题(详解总结)
video-08-videojs黑屏问题(详解总结)
719 1
|
机器学习/深度学习 文字识别 算法
使用Python从图像中提取表格
使用Python从图像中提取表格