当前位置: 首页 > 图文教程 > 网络编程 > Javascript > jQuery教程:制作滑动动画效果的层

Javascript
用户注册常用javascript代码
JavaScript 事件监听实例代码[兼容IE,firefox] 含注释
javascript appendChild,innerHTML,join性能比较代码
JavaScript 继承详解 第一篇
javascript 控制 html元素 显示/隐藏实现代码
Javascript 判断函数类型完美解决方案
获取URL地址中的文件名和参数的javascript代码
js 获取浏览器高度和宽度值(多浏览器)
FF IE兼容性的修改小结
JS URL传中文参数引发的乱码问题
javascript 24小时弹出一次的代码(利用cookies)
ie focus bug 解决方法
javascript concat数组累加 示例
javascript 触发事件列表 比较不错
当文本框的值发生改变时,触发事件,在IE中有效
javascript 操作table的特性
jquery判断单个复选框是否被选中的代码
关于javascript中的parseInt使用技巧
JavaScript 密码强度判断代码
js跨域和ajax 跨域问题的实现思路

Javascript 中的 jQuery教程:制作滑动动画效果的层


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-03   浏览: 401 ::
收藏到网摘: n/a

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

基本原理

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

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

第一步 – CSS 基础工作

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

.boxgrid{
        width: 325px;
        height: 260px;
        margin:10px;
        float:left;
        background:#161613;
        border: solid 2px #8399AF;
        overflow: hidden;
        position: relative;
}
.boxgrid img{
        position: absolute;
        top: 0;
        left: 0;
        border: 0;
}

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

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

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

 .captionfull .boxcaption {
        top: 260;
        left: 0;
 }
 .caption .boxcaption {
        top: 220;
        left: 0;
 }

第二步 – 添加滑动动画

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

$(document).ready(function(){
        //要更改上、下方向和左、右方向,只需要在top/left的值中添加"-"号(表示反方面)。
        //垂直滑动
        $('.boxgrid.slidedown').hover(function(){
                $(".cover", this).stop().animate({top:'-260px'},{queue:false,duration:300});
        }, function() {
                $(".cover", this).stop().animate({top:'0px'},{queue:false,duration:300});
        });
        //水平没去
        $('.boxgrid.slideright').hover(function(){
                $(".cover", this).stop().animate({left:'325px'},{queue:false,duration:300});
        }, function() {
                $(".cover", this).stop().animate({left:'0px'},{queue:false,duration:300});
        });
        //比例缩放滑动
        $('.boxgrid.thecombo').hover(function(){
                $(".cover", this).stop().animate({top:'260px', left:'325px'},{queue:false,duration:300});
        }, function() {
                $(".cover", this).stop().animate({top:'0px', left:'0px'},{queue:false,duration:300});
        });
        //部分滑动 (只显示一部分背景)
        $('.boxgrid.peek').hover(function(){
                $(".cover", this).stop().animate({top:'90px'},{queue:false,duration:160});
        }, function() {
                $(".cover", this).stop().animate({top:'0px'},{queue:false,duration:160});
        });
        //完全滑动的说明 (从完全隐藏到完全显示)
        $('.boxgrid.captionfull').hover(function(){
                $(".cover", this).stop().animate({top:'160px'},{queue:false,duration:160});
        }, function() {
                $(".cover", this).stop().animate({top:'260px'},{queue:false,duration:160});
        });
        //部分滑动的说明 (部分显示-部分隐藏)
        $('.boxgrid.caption').hover(function(){
                $(".cover", this).stop().animate({top:'160px'},{queue:false,duration:160});
        }, function() {
                $(".cover", this).stop().animate({top:'220px'},{queue:false,duration:160});
        });
});

第三步 – HTML

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

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

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

<div class="boxgrid captionfull">
        <img src="jareck.jpg"/>
        <div class="cover boxcaption">
                <h3>Jarek Kubicki</h3>
                <p>Artist<br/><a href="http://www.nonsensesociety.com/2009/03/art-by-jarek-kubicki/" target="_BLANK">More Work</a></p>
        </div>
</div>

好吧。文章标题就这样被我改了。不过,这样对于中文更好理解。而文章这最后一段就不用全译了。只要你知道,这些实例只是供你选择,要创造出一个适合自己的,就要自己动手。如果你有什么不懂的,欢迎到Tech Meme论坛来讨论。这里面没有很多人,因为需要邀请。但,大家喜欢讨论技术问题。如果你需要进来讨论,请联系我。不讨论的就不用邀请码了,因为你可以看到里面的所有文章,除了下载资料