vue 组件轮播联动
组件轮播联动我使用的是 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 组件轮播联动的更多相关文章
- vue实现轮播效果
vue实现轮播效果 效果如下:(不好意思,图有点大:) 功能:点击左侧图片,右侧出现相应的图片:同时左侧边框变颜色. 代码如下:(也可以直接下载文件) <!DOCTYPE html> &l ...
- vue自定义轮播图组件 swiper
1.banner 组件 components/Banner.vue <!-- 轮播图 组件 --> <template> <div class="swiper- ...
- vue 一个轮播的组件
当我们进行开发的时候,并不是说所有信息都会在写一个组件中 作为项目的老大,我们要去思考每个文件下面需要放什么业务,分的越细.越合理为好 我们在componts文件下新建一个Banner.vue 组件 ...
- vue 3d轮播组件 vue-carousel-3d
开发可视化项目时,需要3d轮播图,找来找去发现这个组件,引用简单,最后实现效果还不错.发现关于这个组件,能搜到的教程不多,就分享一下我的经验. 插件github地址:https://wlada.git ...
- Vue编写轮播组件引入better-scroll插件无法正常循环轮播
临近过年还是发个博客表示一下自己的存在感,这段时间公司突然说想搞小程序,想到这无比巨大的坑就只能掩面而泣,于是乎这段时间在学习小程序开发.关于标题所说的是有老铁问的,我也跟着网上的代码码了一遍然后发现 ...
- 跳坑 小程序swiper组件 轮播图片 右边空白问题
swiper 组件 设置轮播图片时,右侧会出现空白的情况:是因为 swiper组件有默认的 高度和宽度,所以我们在设置图片高度和宽度的同时, 也要为 设置高度和宽度,和高度和宽度样式一样的就可以.
- 鸿蒙开源第三方件组件——轮播组件Banner
目录: 1.功能展示 2.Sample解析 3.Library解析 4.<鸿蒙开源第三方组件>系列文章合集 前言 基于安卓平台的轮播组件Banner(https://github.com/ ...
- ⒃bootstrap组件 轮播图 基础案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue+mui轮播图
mui的轮播图,如果图片是请求来的,直接在html中循环是不会动的. 需要请求完图片之后,在setTimeout方法里,使用slider()方法,这样才会动 而且mui的轮播图,有点坑的,需要重复最后 ...
随机推荐
- Java Programming Guidelines
This appendix contains suggestions to help guide you in performing low-level program design and in w ...
- 使用 Notapad++ 进行 Java 开发
准备工具 1.安装 JDK 以及配置相关环境变量: 2.安装 64 位版的 Notepad++ : 2.一台 64 位 Windows 系统电脑: 一.下载&安装Notepad++ 官网下载地 ...
- HashWithIndifferentAccess
The params method returns the parameters passed to the action, such as those fromthe form or query p ...
- C#设计模式--抽象工厂模式(创建型模式)
一.抽象工厂模式: 在工厂模式中具体的产品和具体的工厂是一一对应的,一个工厂只能生产一种产品,结构单一,例如小米公司刚开始是只生产小米手机,但是伴随着公司的发展,他们需要生产不同型号的手机,也会生产路 ...
- gitlab安装详解
官方网站---https://www.gitlab.com.cn/downloads/ 1.选择操作系统 例如:CentOS6.CentOS7.Ubuntu12.04.Ubuntu14.04等,选择相 ...
- vos设置可呼出手机或固话
问题: 默认公司只让呼出手机号码,但有的客户要求能打固话,怎么办? 落地网关——补充设置——落地前缀——落地被叫改写规则 在改写规则里添加固话号段即可 具体案例: 5201——1表示让520号段只能拨 ...
- Uva 12169 不爽的裁判 模运算
题目链接:https://vjudge.net/contest/156903#problem/B 题意: 有一个递推公式 : a,b都不是已知的,给出了 x1,x3,x5.... 求x2,x4,x6. ...
- Uva 11572 唯一的雪花
题目链接:https://uva.onlinejudge.org/external/115/11572.pdf 题意:找到一个尽量长的连续子序列 Al ~ AR ,使得该序列没有相同的元素. 分析:枚 ...
- 有权并查集,Poj(1988)
题目链接:http://poj.org/problem?id=1988 题目大意: 有n个从1到n编号的箱子,将每个箱子当做一个栈,对这些箱子进行p次操作,每次操作分别为以下两种之一: 输入 M x ...
- SpringMVC接受JSON参数详解
转:https://blog.csdn.net/LostSh/article/details/68923874 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session ...