视差滚动(Parallax Scrolling)效果的原理与实现
视差滚动(Parallax Scrolling)效果的原理与实现
1.视差滚动效果的主要特点:
1)直观的设计,快速的响应速度,更合适运用于单页面
2)差异滚动 分层视差
页面上很多的元素在相互独立地滚动着,如果我们来对其它分层的话,可以有两到三层 :背景层,内容层,贴图层。
2.原理
1)差异滚动的实现规则:
背景层的滚动(最慢)
贴图层(内容层和背景层之间的元素)的滚动(次慢)
内容层的滚动(可以和页面的滚动速度一致)
2)1、运用大背景
这些背景图像一般是高分辨率,大图,覆盖整个网站。高清照片是一个迅速抓住观众的好方式,可以产生极具冲击力的视觉效果,用户的视线会不自觉地落在宽大的背景上
注意:
1.1、背景图的色彩、内容在选择时要十分讲究,前提是不要破坏用户的体验,不然再漂亮的照片也是枉然。
图片类型最好选取趋向于一些比较柔和、略带透明的一类,不要影响到网站主体内容的阅读,识别,讲究协调。
1.2、以大量图片为特色的页面应该考虑图像的预加载问题,以便为用户提供更好更流畅的视觉体验.
2、你也可以用简单的配色方案
没有比纯色的背景更直观更简洁。纯色可以有很多种表达方式,一个视差区间内颜色最好保持使用2到3种,我们可以调整颜色的透明度,来达到各种视觉效果
3、定位好背景层,贴图层和内容层之间的关系
根据页面自身的功能来定义是否需要贴图层,贴图层的存在是为了更有效的传达视觉效果,但如果它成为了干扰,就会违背了我们使用的初衷
内容层的展现是最主要的,无论背景层和贴图层有多少花哨,在设计师设计过程中,内容层对用户的展示是最优先的
4、讲故事
有力的表现、简约的风格和设计的美感共同构成了一个出色地交互式叙事体验。我们经常听到这样的话:内容是王道,技术只是实现内容的一种工具。当 你能够成功地把有力的信息和漂亮的执行力结合起来,你就能创造出人们喜欢并且享受其中的体验。
3.实现方法
1、在CSS中定义背景滚动方式的属性是backgroud-attacthment
background-attachment -- 定义背景图片随滚动轴的移动方式
取值: scroll | fixed | inherit
scroll: 默认值。背景图像会随着页面其余部分的滚动而移动。
fixed: 当页面的其余部分滚动时,背景图像不会移动。
inherit: 规定应该从父元素继承 background-attachment 属性的设置。
初始值: scroll
继承性: 否
适用于: 所有元素
2、js实现,添加一些动画事件,移动的速度、方向不同
4.使用场景
1、初创网站。如果其目的在于宣传品牌、产品,且无太多文本内容呈现时,可在初期上线视差滚动网站,让人先对其产生兴趣,留下印象。之后随着访客增多,内容完善后,再改回常规网站形式。
2、主题宣传站点。对于需要在某个时间段发布的活动宣传页面,需要尽可能为用户产生视觉上的冲击,可上线视差滚动站点。例如阿里、腾讯很多专题网站。
3、特殊行业站点。这类站点的特色也在于“宣传为主、突出视觉冲击力、内容有限”。如一些设计公司网站、游戏公司网
效果
插件代码
(function($){
var methods={
init:function(options){
var settings={
offset:true,
bgfixed:true,
insert:true
}
return this.each(function(){
if(options){
$.extend(settings,options);
}
var $this=$(this),
windowSelector = $(window),
documentSelector=$(document),
thisHeight=0,
thisOffsetTop,
image_url='';
_constructor();
function _constructor(){
image_url=$this.data("source-url");
$this.css({"background-image":"url("+image_url+")"});
if(settings.bgfixed){
$this.css({"background-attachment":"fixed"});
}
addEventsFunction();
}
function addEventsFunction(){
windowSelector.on("scroll",function(){
if(settings.offset){
parallaxEffect();
}
}).trigger("scroll");
}
function parallaxEffect(){
var documentScrollTop,
startScrollTop,
endScrollTop,
visibleScrollValue;
thisHeight=$this.outerHeight(); //800px
windowHeight=windowSelector.height(); //窗口的可见高度
thisOffsetTop=$this.offset().top; //0px,
documentScrollTop=documentSelector.scrollTop(); //滚动条滚动的高度
startScrollTop=documentScrollTop + windowHeight;// 滚动条滚动的高度 + 窗口的可见高度
endScrollTop=documentScrollTop - thisHeight; // 滚动条滚动的高度 - 800px
if((startScrollTop > thisOffsetTop) && (endScrollTop < thisOffsetTop)){
visibleScrollValue = startScrollTop - endScrollTop; //定值,窗口的可见高度+800px
pixelScrolled = documentScrollTop - (thisOffsetTop - windowHeight); //滚动条滚动的高度 - 窗口的可见高度
percentScrolled = pixelScrolled / visibleScrollValue;
if(settings.invert){
deltaTopScrollVal = percentScrolled *100; //向下滚动
$this.css({"background-position":"50% "+deltaTopScrollVal+"%"});
}else{
deltaTopScrollVal = (1-percentScrolled) *100; //向上滚动
$this.css({"background-position":"50% "+deltaTopScrollVal+"%"});
}
}
}
});
},
destory:function(){},
reposition:function(){},
update:function(content){}
};
$.fn.cherryFixedParallax=function(method){
if ( methods[method] ) {
return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
} else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
} else {
$.error( 'Method with name ' + method + ' is not exist for jQuery.cherryMediaParallax' );
}
}
})(jQuery);
视差滚动(Parallax Scrolling)效果的原理与实现的更多相关文章
- 视差滚动(Parallax Scrolling)效果的原理和实现
视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验.作为今年网页设计的热点趋势,越来越多的网站应用了这项技术. 一.什么是视差滚 ...
- 【转】视差滚动(Parallax Scrolling)效果的原理和实现
原文:http://www.cnblogs.com/JoannaQ/archive/2013/02/08/2909111.html 视差滚动(Parallax Scrolling)是指让多层背景以不同 ...
- 视差滚动(Parallax Scrolling)插件补充
13. Windows Windows (github) 是一个让你用占据整个屏幕的section来构建单面网站的插件.该插件提供给你一些回调函数,当新的section出现在可视区并且并且处理快照时被 ...
- jQuery视差滚动插件,(附原理分析,调用方法)
演示地址:http://www.jq22.com/jquery-info1799 jquery插件,使用验证过可用. 分析源代码后总结原理:设置background样式为fixed,判断浏览器滚动距离 ...
- 30个让人兴奋的视差滚动(Parallax Scrolling)效果网站--转
视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验.作为今年网页设计的热点趋势,越来越多的网站应用了这项技术.今天这篇文章就与大 ...
- 视差滚动(Parallax Scrolling)的一点小心得
下面内容来源于我知乎的这个答案:http://www.zhihu.com/question/20990029/answer/21436067 假期有空,整理到博客园这边,并做了一些语境的调整. ——— ...
- 那些H5用到的技术(5)——视差滚动效果
前言原理使用方式结合swiper.js 前言 视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验. 目前最火热的视差开源库为pa ...
- CSS完成视差滚动效果
一.是什么 视差滚动(Parallax Scrolling)是指多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验 我们可以把网页解刨成:背景层.内容层.悬浮层 当滚动鼠标滑轮的时候 ...
- 利用background-attachment做视差滚动效果
视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验.作为今年网页设计的热点趋势,越来越多的网站应用了这项技术. 不明白的可以先看 ...
随机推荐
- Backbone的id
id 在model.attributes中,需要用户自行定义,可不定义,获取方法:model.get('id') cid collection中每个model都有的属性,由backbone自动生成,获 ...
- Hibernate学习笔记--Hibernate框架错误集合及解决
错误1:MappingException: Unknown entity解决方案 http://jingyan.baidu.com/article/e75aca8552761b142edac6cf.h ...
- android手机端保存xml数据
1.前面写的这个不能继续插入数据,今天补上,当文件不存在的时候就创建,存在就直接往里面添加数据. 2.代码如下: <pre name="code" class="j ...
- 工控主板对ISO7816智能卡标准的支持
ISO7816是一套协议标准,这套协议不仅规定了智能IC卡的机械电气特性,而且还规定了智能IC卡的应用方法.智能IC卡的主要用途可归为身份识别.支付安全.加密/解密和信息存储四个方面.智能IC卡已经广 ...
- POJ 3280 Cheapest Palindrome 简单DP
观察题目我们可以知道,实际上对于一个字母,你在串中删除或者添加本质上一样的,因为既然你添加是为了让其对称,说明有一个孤立的字母没有配对的,也就可以删掉,也能满足对称. 故两种操作看成一种,只需要保留花 ...
- [置顶] 【原创分享】嵌入式linux应用之内核移植定制篇-前篇(linux-3.8.12 mini2440)--20130824
移植的话其实很早就做过了,不过那时用的友善定制的老版本2.6.32 驱动什么的全部弄好了,仅仅用默认配置而已.基本不用改动什么,很简单. 内核更新其实非常的快,今天我就用个3.8.12来移植. 当然, ...
- 【转】Win7+Ubuntu12.04.1硬盘安装错误及解决方案----不错
原文网址:http://blog.csdn.net/ys_073/article/details/8310115 前言: 说起来了,为了在Win7上进行硬盘安装Ubuntu浪费了整整一个晚上的时间.装 ...
- Windows下MySQL双向同步及环形同步的实现
记录一下这次做的双向同步及环形同步吧,都是最简单的实现: 具体实现之前,先说些与之有关的内容吧,大部分内容都是网上的,操作步骤则是亲自测试之后记录下的: 一. 数据同步的几种方式: 1. 触发器,在数 ...
- jQuery中ajax的使用和缓存问题解决 $getjson 与$get都会被IE缓存
原文地址:http://www.cnblogs.com/fullhouse/archive/2012/01/17/2324842.html 1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL ...
- java算法之身份证号码验证
调用时直接 new IDCard().verify(身份证id);就可以了 实现代码如下: public class IDCard { private String _codeError; //wi ...