组件轮播联动我使用的是 el-carousel 组件,具体代码如下:

<el-carousel trigger="click" :interval="3000" arrow="never" @change="test">
<el-carousel-item v-for="item in 4" :key="item">
<div class="row-item row-city" style="height: 550px" v-if="item === 1">
<div class="item">
<div class="item-hd">
<h3>
<span>城市分布</span>
</h3>
</div>
<div class="item-bd">
<p>{{sxPercentage}}</p>
<p>{{maxDistanceName}}</p>
<div class="paihang" id="cityDisChartsId" style="height:400px; width:500px"></div>
</div>
</div>
</div>
<div class="row-item row-city" style="height: 550px" v-if="item === 2">
<div class="item">
<div class="item-hd">
<h3>
<span>成功率分布</span>
</h3>
</div>
<div class="item-bd">
<p>{{sxSucRateMaxNum}}</p>
<p>{{sxSucRateMaxCity}}成功率最高</p>
<div class="paihang" id="citySucChartsId" style="height:400px; width:500px"></div>
</div>
</div>
</div>
<div class="row-item row-city" style="height: 550px" v-if="item === 3">
<div class="item">
<div class="item-hd">
<h3>
<span>耗时分布</span>
</h3>
</div>
<div class="item-bd">
<p>{{sxAvgDurMinNum}}</p>
<p>{{sxAvgDurMinCity}}平均验证耗时最短</p>
<div class="paihang" id="cityDurChartsId" style="height:400px; width:500px"></div>
</div>
</div>
</div>
</el-carousel-item>
</el-carousel>

下面就可以通过轮播的change事件传递参数到父组件,判断轮播的参数变化而进行相应的过渡

export default {
data() {
return {
pageIndex: 1
}
},
methods: {
test (e) {
this.pageIndex = e;
let setData = e;
this.$emit('transferData', setData);
}
},
watch: {
//解决离开当前标签页再次进入时轮播联动无法同步问题
'pageIndex': (val) => {
if (val === 0) {
let $chinaMap = jQuery("#chinaMapId");
if (!$chinaMap.attr("_echarts_instance_")) {
this.myChart = echarts.init($chinaMap[0]);
window.addEventListener("resize", () => {
this.myChart.resize();
});
let optionChina = store.state.dataTv.chinaMapOption;
this.myChart.setOption(optionChina);
}
} else {
let $sxMap = jQuery("#sxMapId");
if (!$sxMap.attr("_echarts_instance_")) {
this.mySxMapChart = echarts.init($sxMap[0]);
window.addEventListener("resize", () => {
this.mySxMapChart.resize();
});
let optionSx = store.state.dataTv.sxMapOption;
this.mySxMapChart.setOption(optionSx);
}
}
}
}
}

父组件接收子组件传递的轮播参数,进行相应联动

<div>
 <div class="col-lg-6">
//联动组件淡入淡出
<transition name="slide-fade">
<tmpEcharts v-if="mapShow"></tmpEcharts>
</transition>
<transition name="slide-fade">
<szEchart v-if="!mapShow"></szEchart>
</transition>
</div>
<div class="col-lg-3 right">
<cityDistribution @transferData="getDate"></cityDistribution>
</div>
</div>
export default {
data() {
return{
mapShow: true
}
},
methods: {
getDate(setData) {
// 0 -> 中国地图,1,2,3 -> 山西省地图
if (setData === 0) {
this.mapShow = true;
} else {
this.mapShow = false;
}
}
},
}
<style>
/* 可以设置不同的进入和离开动画 */
/* 设置持续时间和动画函数 */
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
/* .slide-fade-leave-active for below version 2.1.8 */ {
transform: translateX(10px);
opacity:;
}
</style>

vue 组件轮播联动的更多相关文章

  1. vue实现轮播效果

    vue实现轮播效果 效果如下:(不好意思,图有点大:) 功能:点击左侧图片,右侧出现相应的图片:同时左侧边框变颜色. 代码如下:(也可以直接下载文件) <!DOCTYPE html> &l ...

  2. vue自定义轮播图组件 swiper

    1.banner 组件 components/Banner.vue <!-- 轮播图 组件 --> <template> <div class="swiper- ...

  3. vue 一个轮播的组件

    当我们进行开发的时候,并不是说所有信息都会在写一个组件中 作为项目的老大,我们要去思考每个文件下面需要放什么业务,分的越细.越合理为好 我们在componts文件下新建一个Banner.vue 组件 ...

  4. vue 3d轮播组件 vue-carousel-3d

    开发可视化项目时,需要3d轮播图,找来找去发现这个组件,引用简单,最后实现效果还不错.发现关于这个组件,能搜到的教程不多,就分享一下我的经验. 插件github地址:https://wlada.git ...

  5. Vue编写轮播组件引入better-scroll插件无法正常循环轮播

    临近过年还是发个博客表示一下自己的存在感,这段时间公司突然说想搞小程序,想到这无比巨大的坑就只能掩面而泣,于是乎这段时间在学习小程序开发.关于标题所说的是有老铁问的,我也跟着网上的代码码了一遍然后发现 ...

  6. 跳坑 小程序swiper组件 轮播图片 右边空白问题

    swiper 组件 设置轮播图片时,右侧会出现空白的情况:是因为 swiper组件有默认的 高度和宽度,所以我们在设置图片高度和宽度的同时, 也要为 设置高度和宽度,和高度和宽度样式一样的就可以.

  7. 鸿蒙开源第三方件组件——轮播组件Banner

    目录: 1.功能展示 2.Sample解析 3.Library解析 4.<鸿蒙开源第三方组件>系列文章合集 前言 基于安卓平台的轮播组件Banner(https://github.com/ ...

  8. ⒃bootstrap组件 轮播图 基础案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. vue+mui轮播图

    mui的轮播图,如果图片是请求来的,直接在html中循环是不会动的. 需要请求完图片之后,在setTimeout方法里,使用slider()方法,这样才会动 而且mui的轮播图,有点坑的,需要重复最后 ...

随机推荐

  1. Chrome浏览器安装vue-devtools插件

    插件功能:方便在浏览器调试vue代码 插件git地址:https://github.com/vuejs/vue-devtools 因为chrome要FQ,打不开,所以不能直接进去安装拓展程序,只能选择 ...

  2. css多行文本溢出显示省略号

    HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <met ...

  3. PHP underlying structure

    http://www.phpinternalsbook.com/classes_objects/magic_interfaces_comparable.html

  4. UIWindow及程序启动的过程

    1.   UIWindow才有自发显示的功能, 一个程序之所以能显示东西,是因为有window !//  [self.window makeKeyAndVisible]; 2.   任何view的显示 ...

  5. 服务器raid状态监控

    参考 http://hwraid.le-vert.net/wiki 查看raid芯片 lspci -v 02:00.0 SCSI storage controller: LSI Logic / Sym ...

  6. c++中explicit关键字用法

    C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类 ...

  7. phpStudy-FTP_Server插件安装使用教程

    FileZilla Server使用教程 ftp server安装教程 除了phpStudy for IIS外其他版本phpStudy不再集成ftp server外. phpStudy for IIS ...

  8. 正交矩阵、正规矩阵和酉矩阵(转自Ramble Over The Cloud~)

    网址:http://blog.csdn.net/alec1987/article/details/7414450 在数学中,正规矩阵 是与自己的共轭转置交换的复系数方块矩阵,也就是说, 满足 其中 是 ...

  9. Poj(1125),Floyd,

    题目链接:http://poj.org/problem?id=1125 多源点最短路中的,最长路的,最短路. 看到这里就懵逼了,解释一下,找到一个源点,使得路最短,(遍历源点),路最短怎么求呢? 就是 ...

  10. linq 查询的两种方法 (在EF model中实现)

    众所周知:linq查询有两种方式 1.通过linq表达式查询 2.是通过linq方法查询 代码中 每一步都有注释