渐入效果实现

思路

首先我们来幅图解析下渐入效果的原理:
这里写图片描述
由图可以看出,整个渐入的效果分为三层,分别为:最外层、内容包裹层和内容层。其中最外层、内容包裹层和内容层三层的宽高是一致的。
开始状态下,最外层和内容包裹层均将超出的部分隐藏,这样其实最开始的时候只能看见最外层左边的50%和内容包裹层左边的50%,内容是完全看不见的。首先我们将内容包裹层宽度设置为最外层的50%,内容距离右边为最外层的50%,其次将内容包裹层的宽度逐渐加到与最外层的宽度相等,让其和最外层重合,同时将内容向右移动最外层宽度的50%,让三层重合,这样就实现了渐入的效果。
下面我们依旧上代码:

<div class="content-wrap">
    <div class="content-inner">
        <div class="content"></div>
    </div>
</div>
.content-wrap{
    position: relative;
    width: 120px;
    height: 120px;
}
.content{
    background: #ff3300;
}
$(function(){
    var time = 600; // 设置渐入速度
    easeIn($(".content-wrap"),$(".content-inner"),time);
})
/*
 *功能:实现渐入效果
 * param1:最外层(content-wrap)
 * param1:内容包裹层(content-inner)
 * param1:速度时间控制
 * */
function easeIn(param1,param2,param3){
    var widthWrap,
        heightWrap,
        bgWrapSon;

    widthWrap = param1.width();
    heightWrap = param1.height();
    bgWrapSon = param2.children();
    param2.css({
        "position":"absolute",
        "top":"0",
        "right":"0",
        "display":"block",
        "width":widthWrap/2,
        "height":heightWrap,
        "overflow":"hidden"
    });
    bgWrapSon.css({
        "position":"absolute",
        "top":"0",
        "right":widthWrap/2,
        "width":widthWrap,
        "height":heightWrap
    });

    param2.animate({
            "width":widthWrap
        },
        {
            duration:param3,
            easing:"linear"
        }
    )
    bgWrapSon.animate({
            right:"0"
        },
        {
            duration:param3,
            easing:"linear"
        }
    )
}

实现效果:
这里实现效果我不截图了,动画的截了也没啥意思,需要看的同学复制代码运行下即可,这个跟PPT里面的渐入效果是一样的,记得引入jQuery文件。

有更好实现方法的同学请留言指教,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值