模仿某旅行网站 纯css实现背景放大效果

基本功能是鼠标移动到图片上,对应宽度变宽。其中布局和基本样式直接copy官网,功能部分是自己瞎鼓捣实现的。

直接上代码:

HTML部分

<div class="fold_wrap">
  <ul class="clearfix" id="sm">
    <li class="">
      <a href="javascript:;">
      <div class="mask_b">
        <h4>园林酒店</h4>
      </div>
      <div class="pic_auto pic_auto1"></div>
      <div class="adv_intro">有谁不爱泡温泉?浸入雾气蒸腾的泉水之中,把身体泡成一片茶叶,舒展轻盈。有比这更美妙的感觉吗?</div>
    </a>
    </li>
    <li class="">
      <a href="javascript:;">
        <div class="mask_b">
          <h4>情侣酒店</h4>
        </div>
        <div class="pic_auto pic_auto2"></div>
        <div class="adv_intro">浪漫,是香闺围笼里的暧昧,是灯火迷离,泪眼婆裟的唯美,是杨柳岸、晓风残月中的无语凝噎……</div>
      </a>
    </li>
    <li class="">
      <a href="javascript:;">
        <div class="mask_b">
          <h4>设计师酒店</h4>
        </div>
        <div class="pic_auto pic_auto3"></div>
        <div class="adv_intro">前卫的酒店设计理念,独具魅力的风格,优美的自然风光才能有这样顶级的酒店。</div>
      </a>
    </li>
    <li class="">
        <a href="javascript:;">
          <div class="mask_b">
            <h4>青年旅舍</h4>
          </div>
          <div class="pic_auto pic_auto4"></div>
          <div class="adv_intro">我为你煮一杯温茶,斟一杯美酒。让我们席地而坐,听你的梦想。用你的只言片语装点我们的梦想博物馆。</div>
          </a>
    </li>
    <li class="">
        <a href="javascript:;">
        <div class="mask_b">
          <h4>特色客栈</h4>
        </div>
        <div class="pic_auto pic_auto5"></div>
        <div class="adv_intro">在这里,你可以静静发呆,而不被人打扰,只用细细品味它的美好;在这里,你能看见最美好的星星,能让你找到最深的感动。</div>
        </a>
    </li>
    <li class="">
      <a href="javascript:;">
        <div class="mask_b">
          <h4>海岛酒店</h4>
        </div>
        <div class="pic_auto pic_auto6">
        </div>
        <div class="adv_intro">不想过冬,厌倦沉重,就飞去热带的岛屿游泳,卸下包袱,放下压力,让自己的身与心,在这碧海蓝天之中,享受一次超自然的洗礼。</div>
      </a>
    </li>
    <li class="">
      <a href="javascript:;">
          <div class="mask_b">
            <h4>海外温泉</h4>
          </div>
          <div class="pic_auto pic_auto7">
          </div>
          <div class="adv_intro">
            因地形地质的区别,世界各地的温泉也千差万别,选择一处适合自己的温泉,5分钟后,你会忘记自己,20分钟后,你会忘记世界。
          </div>
      </a>
    </li>
  </ul>
</div>

 CSS部分

<style>
  @keyframes flow-in {
    0% {
      width: 133px;
    }
    100% {
      width: 402px;
    }
  }
  @keyframes flow-out {
    0% {
      width: 402px;
    }
    100% {
      width: 133px;
    }
  } 
  *{
    margin: 0;
    padding: 0;
  }
  li{
    list-style: none;
  }
  .fold_wrap {
    width: 1200px;
    overflow: hidden;
    margin: 0 auto;
  }
  .fold_wrap ul {
    width: 1200px;
    height: 260px;
    margin: 0 auto;
    overflow: hidden;
  }
  .fold_wrap ul li {
    float: left;
    width: 133px;
    height: 260px;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: width .5s;
  }
  li:hover + li {
    animation: flow-out 0.5s ease-in;
    animation-fill-mode: forwards;
  }
  li:hover{
    animation: flow-in 0.5s ease-in;
    animation-fill-mode: forwards;
  }
  .fold_wrap ul li .mask_b {
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0,0,0,.3);
  }
  .fold_wrap ul li .mask_b h4 {
    color: #fff;
    width: 30px;
    margin: 0 auto;
    display: block;
    font: 30px/30px Microsoft Yahei;
    position: relative;
    padding: 30px 0 0 0;
  }
  .pic_auto {
    width: 100%;
    height: 100%;
  }
  .pic_auto1 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150422_ifold1.jpg) no-repeat center 0
  }

  .pic_auto2 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150120_ifold2.jpg) no-repeat center 0
  }

  .pic_auto3 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150120_ifold3.jpg) no-repeat center 0;
  }

  .pic_auto4 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150120_ifold4.jpg) no-repeat center 0
  }

  .pic_auto5 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150120_ifold5.jpg) no-repeat center 0
  }

  .pic_auto6 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150120_ifold6.jpg) no-repeat center 0
  }

  .pic_auto7 {
      background: url(http://m.elongstatic.com/static/webapp/pc_static/common/pic/20150120_ifold7.jpg) no-repeat center 0
  }
  .fold_wrap ul li .adv_intro {
    width: 92%;
    height: 40px;
    padding: 5px 4%;
    position: absolute;
    left: 0;
    bottom: -50px;
    background: #37D;
    color: #FFF;
    overflow: hidden;
  }
</style>

效果截个图:

 

虽然实现了,但还不是很完美,鼠标从右向左 没问题,从左向右滑动,会有问题。animation动画问题。

posted @ 2018-10-16 23:41  若鱼灬  阅读(658)  评论(0编辑  收藏  举报