自定义指令-轮播
- *inserted 插入最后一个元素时调用(vnode.context.datalist.length-1)
- *this.$nextTick()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Examples</title>
<link rel="stylesheet" href="lib/swiper/css/swiper.css">
<script src="lib/swiper/js/swiper.js"></script>
<script type="text/javascript" src="lib/vue.js"></script>
<style>
.swiper-container {
width: 600px;
height: 300px;
}
</style>
</head>
<body>
<div id="box">
<div class="swiper-container a">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(data,index) in list" v-swipe="{
index:index,
length:list.length
}">
<!--v-swipe值能有一个参数,但是可以是其他类型比如对象 -->
{{data}}
</div>
</div>
<!-- 如果需要分页器 -->
<div class="swiper-pagination"></div>
</div>
</div>
<script type="text/javascript">
Vue.directive("swipe", {
inserted(el, bind) {
console.log(bind.value)
if (bind.value.index === bind.value.length - 1) {
new Swiper('.a', {
// direction: 'vertical'
loop: true,
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
}
})
}
}
})
new Vue({
el: "#box",
data: {
list: []
},
mounted() {
//定时器
setTimeout(() => {
this.list = ["1111", "2222", "3333"]
}, 2000)
},
})
</script>
</body>
</html>