轮播图slider

在当前网页中,轮播图是再频繁不过的一个效果了,看到很多页面的首页开头都是轮播图。关于vue的轮播图的组件,我之前跟着做的项目实行了不同的两种方案。我下面将自己所学习的写下来,作为自己的知识的积累和记忆。

首先第一种方式: 要展现的数据全部通过props由父组件传递给子组件,并进行渲染。主要的渲染布局全部在子组件中进行编写,之后需要调用的话直接传递数据就可以了。我个人觉得这种写法方便以后调用。但是这种组件进行封装的难度估计会比较大吧。

上代码: 

      <div class="slider-img" @click="btn">
          <a :href="slides[1].href">
              <transition name="slider-trans">
                <img :src="slides[nowIndex].src" v-if="isShow">
              </transition>
              <transition name="slider-trans-old">
                <img :src="slides[nowIndex].src" v-if="!isShow">
              </transition>
          </a>
      </div>

CSS样式: 

.slide-trans-enter-active {
  transition: all 1s;
}
.slide-trans-enter {
  transform: translateX(900px);
}
.slide-trans-old-leave-active {
  transition: all 1s;
  transform: translateX(-900px);
}
.slide-show {
  position: relative;
  margin: 15px 15px 15px 0;
  width: 900px;
  height: 500px;
  overflow: hidden;
}
.slide-img {
  width: 100%;
}
.slide-img img {
  width: 100%;
  position: absolute;
  top: 0;
}

开始,我以为是将一长串图片浮动横放入一个绝对定位的ul盒子里,然后通过定时器移动ul盒子的left值进行轮播,因为以前JS源码写的就是采取这种方案。但是今天仔细看了代码后发现不是这样的。

上面的方法,布局方面大同小易。但是轮播的思路不是以往的那样。利用vue提供的过渡组件来进行轮播效果

<transition name="v"></transition>

过程如图所示:


布局中是两个图片img元素分别提供了相反的v-if="isShow" 和 v-if="!isShow"。一个显示另一个不显示。第一个对应的是

.slide-trans-enter-active {
  transition: all 1s;
}
.slide-trans-enter {
  transform: translateX(900px);
}

这段代码表示当isShow=true时,第一个img元素是显示的,并且根据transform: translateX(900px)。在渲染的时候,img应当在以它原有位置的基础上(x轴方向上)偏移900px;的距离进行缓慢滑入,如图&#x

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值