Stellar--视觉差滚动插件

插件下载地址:http://doc.bropaul.com/Stellar.js/
GitHub地址:https://github.com/markdalgleish/stellar.js
11个视觉差滚动效果的HTML5网站 :http://www.w3cfuns.com/portal.php?mod=view&aid=714

介绍:

易用——最便捷的Parallax插件
只需给标签添加data属性,然后运行$.stellar()
就可以实现酷炫的视差滚动了。向右滚动页面,走起!

精准——准确排列网页元素和背景
不论是网页元素还是背景,当到达屏幕边缘或者设定的偏移位置时,都能整齐排列。同时还能自动吸附到达指定位置

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

可以看一下演示效果:http://www.ok-studios.de/home/

一、什么是视差滚动?

视差效果,原本是一个天文学术语,当我们观察星空时,离我们远的星星移动速度较慢,离我们近的星星移动速度则较快。当我们坐在车上向车窗外 看时,也会有这样的感觉,远处的群山似乎没有在动,而近处的稻田却在飞速掠过。许多游戏中都使用视差效果来增加场景的立体感。说的简单点就是网页内的元素在滚动屏幕时发生的位置的变化,然而各个不同的元素位置变化的速度不同,导致网页内的元素有层次错落的错觉,这和我们人体的眼球效果很像。我看到多家产品商用视差滚动效果来展示产品,从不同的空间角度和用户体验,起到了非常不错的效果。
目前这种视差滚动效果被越来越多的国外网站所应用, 成为网页设计的热点趋势。

通过一个很长的网页页面,其中利用一些令人惊叹的插图和图形,并使用视差滚动(Parallax Scrolling)效果,让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。完美的展示了一个复杂的过程,让你犹如置身其中。厌倦了千篇一律,呆板网页设计的你不放一试。

就是固定背景不让它随着滚动轴移动,但包含背景的容器是跟着滚动的,所造成的视觉差异看起来就像跟转换场景一样。

二、视差滚动效果的主要特点:
1、直观的设计,快速的响应速度,更合适运用于单页面
2、差异滚动 分层视差
页面上很多的元素在相互独立地滚动着,如果我们来对其它分层的话,可以有两到三层 :背景层,内容层,贴图层。

三、原理

通过前景与背景在场景移动时产生不同的视差,从而达到简单的立体效果

页面上很多的元素在相互独立地滚动着,如果我们来对其它分层的话,可以有两到三层 :背景层,内容层,贴图层

1、运用大背景

  这些背景图像一般是高分辨率,大图,覆盖整个网站。高清照片是一个迅速抓住观众的好方式,可以产生极具冲击力的视觉效果,用户的视线会不自觉地落在宽大的背景上

  注意:

  1. 1、背景图的色彩、内容在选择时要十分讲究,前提是不要破坏用户的体验,不然再漂亮的照片也是枉然。

  图片类型最好选取趋向于一些比较柔和、略带透明的一类,不要影响到网站主体内容的阅读,识别,讲究协调。

  1.2、以大量图片为特色的页面应该考虑图像的预加载问题,以便为用户提供更好更流畅的视觉体验.

2、你也可以用简单的配色方案
没有比纯色的背景更直观更简洁。纯色可以有很多种表达方式,一个视差区间内颜色最好保持使用2到3种,我们可以调整颜色的透明度,来达到各种视觉效果

3、定位好背景层,贴图层和内容层之间的关系
根据页面自身的功能来定义是否需要贴图层,贴图层的存在是为了更有效的传达视觉效果,但如果它成为了干扰,就会违背了我们使用的初衷

  内容层的展现是最主要的,无论背景层和贴图层有多少花哨,在设计师设计过程中,内容层对用户的展示是最优先的

4、讲故事

  有力的表现、简约的风格和设计的美感共同构成了一个出色地交互式叙事体验。我们经常听到这样的话:内容是王道,技术只是实现内容的一种工具。当你能够成功地把有力的信息和漂亮的执行力结合起来,你就能创造出人们喜欢并且享受其中的体验。 ————Wieden+Kennedy

插件有:
1 Scrollorama
2 curtain.js
3 jQuery-Parallax
4 stellar.js
5 jparallax
6 Skrollr
7 Parallax.js
教程
Javascript视差效果

提供一个实现的源码:(http://adamed.iteye.com/blog/1579555)

    jQuery ( function( $ ) {
        $.Body = $ ( 'body' );// body对象封装
        $.Window = $ ( window );// window对象封装
        // 根据浏览器类型获取一个html或body对象,具体作用在下面。
        $.Scroll = ( $.browser.mozilla || $.browser.msie ) ? $ ( 'html' ) : $.Body;
        /*
     * 具有data-controller属性的对象(也就是页面中:
     * 与最后一个section 
// 根据源码剖析,此方法未做任何操作 $ ( '[data-controller]' ).Instantiate ( ); /* * 该对象供easing插件使用 http://jqueryui.com/demos/effect/easing.html */ var _opt = { duration : 1200,// 时间 easing : "easeInOutExpo" }; /* * 当前纵向滚动条距离页面顶部距离 例如:6378 */ console.log ( $.Scroll.scrollTop ( ) ); /* * 根据绝对计算当前处于第几个场景 例如:5.815 */ console.log ( ( $.Scroll.scrollTop ( ) + 600 ) / 1200 ); /* * 场景数 例如:5 */ $current = Math.floor ( ( $.Scroll.scrollTop ( ) + 600 ) / 1200 ); console.log ( "场景数:" + $current ); console.log ( "窗口高度:" + $.Window.height ( ) ); var $newY = $current * 1200 - ( $.Window.height ( ) - 1200 ) / 2; console.log ( "new Y:" + $newY ); //**********这个地方实现了刷新时自动回到当前场景初始状态*********** $.Scroll.animate ( { scrollTop : $newY } , _opt ); $first = $ ( "#story-welcome" ); $first.show ( "slow" ); } );

提供一个 我自己利用stellar实现的视觉差滚动的页面
`

`
    <html>
    <head>
    <title>Stellar.js Backgrounds Demotitle>
    <style type="text/css">
    body,span,div,{
        margin: 0;
        padding: 0;
    }
    body {
        font-family: helvetica,arial;
    }
    .photo {
        background-attachment: fixed;
        background-position: 50% 0;
        background-repeat: no-repeat;
        height: 700px;
        position: relative;
    }
    .photo span {
        bottom: 0;
        display: block;
        color:white;
        font-size: 38px;
        left: 50%;
        margin-left: -640px;
        padding: 10px;
        position: absolute;
        text-shadow: 0 2px 0 black, 0 0 10px black;
        width: 1280px;
    }
    .summer {
        background-image: url("images/summer.jpg");
    }
    .autumn {
        background-image: url("images/autumn.jpg");
    }
    .winter {
        background-image: url("images/winter.jpg");
    }
    .spring {
        background-image: url("images/spring.jpg");
    }

    style>
    <script src="js/jquery-2.1.1.js">script>
    <script src="js/jquery.stellar.js">script>
    <script type="text/javascript">
    $(function(){
    $.stellar({
        horizontalScrolling: false,
        verticalOffset: 40
    });
    });
    script>
    head>
    <body>
    <div class="photo summer" style="background-position: 50% 0px;"  data-stellar-background-ratio="0.5" >
    <span>Summerspan>
    div>
    <div class="photo autumn" style="background-position: 50% 0px;"  data-stellar-background-ratio="0.5" >
    <span>Autumnspan>
    div>
    <div class="photo winter" style="background-position: 50% 0px;" data-stellar-background-ratio="0.5" >
    <span>Winterspan>
    div>
    <div class="photo spring" style="background-position: 50% 0px;" data-stellar-background-ratio="0.5" >
    <span>Springspan>
    div>
    <div class="photo summer" style="background-position: 50% 0px;" data-stellar-background-ratio="0.5" > 
    <span>Summerspan>
    div>
    <div class="photo autumn" style="background-position: 50% 0px;" data-stellar-background-ratio="0.2" >
    <span>Autumnspan>
    div>
    <div class="photo winter" style="background-position: 50% 0px;" data-stellar-background-ratio="0.2" >
    <span>Winterspan>
    div>
    <div class="photo spring" style="background-position: 50% 0px;" data-stellar-background-ratio="0.2" >
    <span>Springspan>
    div>
    body>
    html>

你可能感兴趣的:(前端学习)