使用jQuery制作滑动动画效果的层

基本原理

这些具有动态效果的滑动盒都基于同样的基本原理。在你经过想要"窥见"对象中的其他两个项目,这个带有".boxgrid"的DIV标签充当着一个窗口。还不明白? 让这个图片来给你线索吧:

理解了这个基本原理之后,我们就可以利用滑动元素的动画效果来揭开或遮盖住要展示的区域,以此来创造滑动效果。

第一步 – CSS 基础工作

在上面给出基本结构的启示图中,我们需要使用一点CSS来让它显示出预期的效果。下面这个CSS定义了查看窗口(.boxgrid) 并的在LEFT和TOP设定图片的默认POSITION,这对于滑动时的重叠交代很重要。并且不要忘记overflow:hidden将使这一切成为可能。

  1. .boxgrid{
  2.       width: 325px;
  3.       height: 260px;
  4.       margin:10px;
  5.       float:left;
  6.       background:#161613;
  7.       border: solid 2px #8399AF;
  8.       overflow: hidden;
  9.       position: relative;
  10. }
  11. .boxgrid img{
  12.       position: absolute;
  13.       top: 0;
  14.       left: 0;
  15.       border: 0;
  16. }

如果你不准备用CSS来实现半透明的描述,可直接跳向第二步:

  1. .boxcaption{
  2.       float: left;
  3.       position: absolute;
  4.       background: #000;
  5.       height: 100px;
  6.       width: 100%;
  7.       opacity: .8;
  8.       /* For IE 5-7 */
  9.       filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  10.       /* For IE 8 */
  11.       -MS-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
  12.       }

现在,我们需要设定说明层(caption box,觉得用层好过于盒)的默认的起点。如果想让其初始化的时候完全隐藏,这将需要设定TOP和LEFT为你的窗口(.boxgrid)的高和宽,(当然)这是由所要滑动的方向决定的。你也可以让它在初始化的时候只显示一部分,像这个(CSS所定义的).caption和.boxcaption所给出的:

  1. .captionfull .boxcaption {
  2.       top: 260;
  3.       left: 0;
  4. }
  5. .caption .boxcaption {
  6.       top: 220;
  7.       left: 0;
  8. }

第二步 – 添加滑动动画

下一步是选择适合你的动画,我提供了几个预设的潜在需求(样式)。试用一下他们,选择一个符合你风格也是你需要的样式。

  1. $(document).ready(function(){
  2.       //要更改上、下方向和左、右方向,只需要在top/left的值中添加"-"号(表示反方面)。
  3.       //垂直滑动
  4.       $('.boxgrid.slidedown').hover(function(){
  5.               $(".cover", this).stop().animate({top:'-260px'},{queue:false,duration:300});
  6.       }, function() {
  7.               $(".cover", this).stop().animate({top:'0px'},{queue:false,duration:300});
  8.       });
  9.       //水平没去
  10.       $('.boxgrid.slideright').hover(function(){
  11.               $(".cover", this).stop().animate({left:'325px'},{queue:false,duration:300});
  12.       }, function() {
  13.               $(".cover", this).stop().animate({left:'0px'},{queue:false,duration:300});
  14.       });
  15.       //比例缩放滑动
  16.       $('.boxgrid.thecombo').hover(function(){
  17.               $(".cover", this).stop().animate({top:'260px', left:'325px'},{queue:false,duration:300});
  18.       }, function() {
  19.               $(".cover", this).stop().animate({top:'0px', left:'0px'},{queue:false,duration:300});
  20.       });
  21.       //部分滑动 (只显示一部分背景)
  22.       $('.boxgrid.peek').hover(function(){
  23.               $(".cover", this).stop().animate({top:'90px'},{queue:false,duration:160});
  24.       }, function() {
  25.               $(".cover", this).stop().animate({top:'0px'},{queue:false,duration:160});
  26.       });
  27.       //完全滑动的说明 (从完全隐藏到完全显示)
  28.       $('.boxgrid.captionfull').hover(function(){
  29.               $(".cover", this).stop().animate({top:'160px'},{queue:false,duration:160});
  30.       }, function() {
  31.               $(".cover", this).stop().animate({top:'260px'},{queue:false,duration:160});
  32.       });
  33.       //部分滑动的说明 (部分显示-部分隐藏)
  34.       $('.boxgrid.caption').hover(function(){
  35.               $(".cover", this).stop().animate({top:'160px'},{queue:false,duration:160});
  36.       }, function() {
  37.               $(".cover", this).stop().animate({top:'220px'},{queue:false,duration:160});
  38.       });
  39. });

第三步 – HTML

这里需要一些类(class)来作为jQuery的选择器,在心里存着这样的标准:


  • DIV标签的类".cover"必须分配给任何一个想要滑动的对象;
  • 有.boxgrid类的DIV标签,图片通常最先显示。


这是一个我将用在.captionfull动画的HTML例子:

  1. <div class="boxgrid captionfull">
  2.       <img src="jareck.jpg"/>
  3.       <div class="cover boxcaption">
  4.               <h3>Jarek Kubicki</h3>
  5.               <p>Artist<br/><a href="http://www.nonsensesociety.com/2009/03/art-by-jarek-kubicki/" target="_BLANK">More Work</a></p>
  6.       </div>
  7. </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值