jQuery制作卷轴效果(由中间向两边展开)

1.切图:我是将一个画轴原图切成4个部分,两个轴单独切出来,剩下的主体部分均分切开。
在这里插入图片描述

2.html结构:
前面4个div的背景图即是我们切好的4张图

 <div class="content">
        <div class="l-pic-index"></div>
        <div class="r-pic-index"></div>
        <div class="l-bg-index"></div>
        <div class="r-bg-index"></div>
        <div class="main-index">
            <h1 class="title"><img src="./img/intro-title.png" alt=""></h1>
            <p class="intro-text">
                传统音乐是在以典河流域为中心的中原音乐和四域音乐以及外国音乐的交流融合之中形成发展起来的。
            </p>
        </div>
    </div>

3.css(核心部分)
将两个轴定位在div的中间,紧贴但不重叠;
将两个主体部分也定位在中间,主体部分的宽度设置的要比轴的宽度小,这样初始状态时,轴才能将其完全覆盖。

4.js
比较简单,动画过程中改变轴的left,right值,主体的宽度和left值。

5.制作卷轴从中间向两侧展开的效果过程中遇到的问题:

  1. 对卷轴的展开方式理解有误

    从中间向两侧展开过程中,只有两侧的卷轴在相对反方向移动,中间的主体部分肉眼看应该是静止的。而我做出来的效果,左边的主体部分会随着卷轴的移动而感觉被展开。

  2. 在展开过程中会有一条缝(线)出现

    两种情况: 在移动过程中,开始和最后是正常,但在即将结束前会突然闪现一条缝,缝的位置有时在中间,有时在两侧。

    原因:经过不断调试,发现是卷轴的宽度和主体的宽度导致的,将它们的宽度比实际宽度增加1px,该缝就不会出现。

  3. 这个效果,主要就是css样式需要细调,因为只要有1px的差距,动画过程中可能就会出现缝隙。

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>卷轴展开demo</title>
    <link rel="stylesheet" href="./css/index.css">
    <script src="./js/jquery-1.11.3.min.js"></script>
</head>
<body>
    <!--content-->
    <div class="content">
        <div class="l-pic-index"></div>
        <div class="r-pic-index"></div>
        <div class="l-bg-index"></div>
        <div class="r-bg-index"></div>
        <div class="main-index">
            <h1 class="title"><img src="./img/intro-title.png" alt=""></h1>
            <p class="intro-text">
                西南传统音乐是在以典河流域为中心的中原音乐和四域音乐以及外国音乐的交流融合之中形成发展起来的。
                因此可以说,中原音乐、四域音乐、外国音乐是中国传统音乐的三大来源。 中原音乐指的是以黄河流域为中心发展起来的音乐。
                在漫长的历史发展过程中,形成了以汉族为主体的黄河流域音乐文化。其中,殷商和西周时期的音乐文化具有代表意义。
                除六代乐舞及其他多种乐舞的发展和整理,礼乐制度的阶级化和等级化,大司乐机构的设置,三分损益律的运用等,
                对全代有重要影响之外,尤其在“八音”乐器分类中“琴”(七弦琴)及其音乐的出现,奠定了中国传统乐器与器乐的基本模式。
            </p>
        </div>
    </div>
</body>
</html>

CSS

body,ul,li,p,h1,h2,h3,h4,h5{
    margin:0;
    padding:0;
    font-size:100%;
}
body{
    font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, Sans-Serif;
    font-size: 14px;
    background: #6f0b02;
}
button,input,select,textarea{
    font-family: inherit;
    font-size: 100%;
    margin: 0;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    cursor: pointer;
}
li{
    list-style: none;
}
a{
    text-decoration:none;
    color:#000;
    background: transparent;
}
a:focus{
    outline: none;
}
img{
    border:0;
}

.fl{
    float: left;
}
.fr{
    float: right;
}
.center{
    width: 1000px;
    margin: 0 auto 0;
}
/*content*/
.content{
    position: relative;
    margin: 40px auto 0;
    width: 1026px;
    height: 460px;
}
.l-pic-index{
    position: absolute;
    left: 450px;
    top: 1px;
    z-index:2;
    width:79px;
    height:460px;
    background: url("../img/l-pic-index.png") no-repeat right 0;
}
.r-pic-index{
    position: absolute;
    right: 450px;
    top: 0;
    z-index: 2;
    width:82px;
    *width:82px;
    height:460px;
    background: url("../img/r-pic-index.png") no-repeat left 0;
}
.l-bg-index{
    position: absolute;
    top: 0;
    left: 485px;
    z-index: 1;
    width: 20px;
    height: 459px;
    background: url(../img/l-bg-index.png) right 0 no-repeat;
}
.r-bg-index{
    position: absolute;
    top: 0;
    left: 504px;
    z-index: 1;
    width: 20px;
    height: 459px;
    background: url(../img/r-bg-index.png) 0 0 no-repeat;
}
.main-index{
    display: none;
    overflow: hidden;
    zoom:1;
    position: absolute;
    z-index: 5;
    width:720px;
    height:280px;
    left:55px;
    top:90px;
    color: #2e2e2e;
}
.intro-text{
    margin: 10px 0 0 44px;
    line-height: 1.8;
    text-indent: 30px;
}

JS

$(document).ready(function(){
        //卷轴展开效果
        $(".l-pic-index").animate({'left':'8px'},1500);
        $(".r-pic-index").animate({'right':'9px'},1500);
        $(".l-bg-index").animate({'width':'432px','left':'73px'},1500);
        $(".r-bg-index").animate({'width':'432px','left':'504px'},1500,function(){
            $(".main-index").fadeIn(800);
        });
    });

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值