vue实现循环跑马灯效果,vue无缝轮播图
这篇文章主要为大家详细介绍了某视频剪辑软件实现无缝轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了某视频剪辑软件实现无缝轮播效果的具体代码,供大家参考,具体内容如下
1.首先创建两个某视频剪辑软件组件Sweiper.vue和SweiperItem.vue
2.将两个组件引入页面,Sweiper.vue中用v型车传参(v-model 其实是语法糖,默认属性value和默认事件input);
代码中我是通过v型车的精选将值传给斯威珀(子组件),自动轮播时子组件再通过触发input事件将即将显示的值传回给父组件
3.核心是要让挑选的值传到瑞典主题中,与瑞典主题中的名字值相等判该显示哪张图片;
模板
差异
Sweiper v-model=selected
!- v型车是个语法糖,相当于价值和投入事件-
Sweiper-item name=item1
div class=item
img :src=getImg(01) alt=
/div
/Sweiper-item
Sweiper-item name=item2
div class=item
img :src=getImg(02) alt=
/div
/Sweiper-item
Sweiper-item name=item3
div class=item
img :src=getImg(03) alt=
/div
/Sweiper-item
/Sweiper
/div
/模板
这里的图片没有通过数组用迭代循环,方便大家看其结构形式
脚本
从导入斯威珀./components/SW eipervue ;
从导入瑞典主题./components/sweiperitem。vue ;
导出默认值{
姓名:我的韦柏,
组件:{
斯威珀,
瑞典主题
},
data() {
返回{
已选择:"项目1",//默认第一张
}
},
方法:{
getImg(url){
返回“img/”URL . jpg
},
},
已安装(){
/*setInterval(()={
this.selected=item2
},3000)
此时因为安装好的只执行一次,所以还是不变,需要在斯威珀写一个看监听
}*/这一步注释是因为换到斯威珀组件中写了
}
/脚本
风格。项目{
/*边框:1px纯黑;*/
}。项目{
宽度:100%;
/*身高:0.1雷姆;*/
}
/风格
Sweiper.vue
模板
div class=Sweiper
插槽/插槽
/div
/模板
脚本
导出默认值{
姓名: Sweiper ,
data() {
返回{
当前:""
}
},
道具:{
值:{
类型:字符串,
默认值:""
},
},
已安装(){
//自动轮播时查找名字值用索引关于的方法遍历出当前轮播的下表
this.names=这个. children.map(child={
返回儿童姓名
});
这个show img();
这个。播放()
},
方法:{
showImg(){
this.current=this.value this这个.$children[0].姓名;
//当前实例的直接子组件
这个children.map(vm={
VM。选择=这个。目前的
})
},
paly(){
//每次轮播把图片做调整
this.timer=setInterval(()={
//索引关于返回某个指定字符串首次出现的位置
常量索引=this。名字。的索引。当前);
设新指数=指数1;
//严谨一点
if(新索引===this。名字。长度){
新索引=0;
}
这个emit(input ,this.names[newIndex])
},3000)
}
},
观察:{
//监听价值值,发生变化就改变挑选
value(){
这个。显示()
}
},
销毁前(){
//实列销毁前
clearInterval(this.timer)
}
};
/脚本
风格。Sweiper{
/*边框:1px纯黑;*/
宽度:100%;
身高:4雷姆;
溢出:隐藏;
边距:0自动;
位置:相对;
}
/风格
SweiperItem.vue
模板
过渡
div的weiper-item v-show= is show
插槽/插槽
/div
/过渡
/模板
脚本
导出默认值{
名称: SweiperItem ,
data(){
返回{
选定的:""
}
},
道具:{
名称:{
类型:字符串,
必填:真
},
},
已安装(){
},
计算值:{
isShow(){
归还这个。选中===这个。姓名;
}
}
};
/脚本
风格。v-回车-激活,0 .五-离开-活动{
过渡:全一线性;
}。五-离开到{
转换:平移(-100%);
}。回车{
转换:翻译(100%);
}。v-enter-active{
位置:绝对;
top:0;
左:0;
}
/风格
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。