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的轮播图,有点坑的,需要重复最后 ...
随机推荐
- laravel下的ORM数据映射之自由畅想
此处以Model::get()方法和Model::first()方法为例 public static function get($data=[]){//默认是空数组 if(count($data)== ...
- Js仿腾讯微博效果
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- HTML文本格式化用法
1.HTML 文本格式化标签 标签 描述 <b> 定义粗体文本 <em> 定义着重文字,显示为斜体 <i> 定义斜体字 <small> 定义小号字 &l ...
- 【起航计划 010】2015 起航计划 Android APIDemo的魔鬼步伐 09 App->Activity->Redirection 根据shared preferences是否有值决定是否redirect
Redirection示例涉及到三个Acitivity: RedirectEnter, RedirectMain,RedirectGetter. 示例的主Activity为 RedirectEnter ...
- 如何使用Nunit进行测试
如何使用Nunit进行测试(Visual Studio 2017 comminity) 原文:如何使用Nunit进行测试(Visual Studio 2017 comminity) 一.环境 操作系统 ...
- python网络编程-paramiko模块
paramiko模块 该模块基于SSH用于连接远程服务器并执行相关操作 参考文档 SSHClient 用于连接远程服务器并执行命令 import paramiko #创建SSH对象 ssh = par ...
- python socket实现多个连接
socket实现多个连接 前戏很重要~~ 在实现多个连接之前,先实现下多次发送和接收数据. 如果要多次接收数据,那么在服务器端的接收和客户端的发送部分就必须使用循环. 以下代码在python3.5下运 ...
- java:Java环境配置
1.安装JDK开发环境 下载网站:http://www.oracle.com/ 2.配置环境变量: 对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe.java.exe.路径:C ...
- 使用mongoDB时错误解决
接触mongodb遇到的错误,记录下来,后续遇到问题,会持续更新 为了让mongodb更直观,在windows使用了NoSQL Manager for MongoDB作为连接工具 1.在连接数据库时遇 ...
- Git-实验报告
“Git 实战教程”实验报告 基本用法(下) 二.比较内容 1.比较提交 - Git Diff git diff命令的作用是比较修改的或提交的文件内容. 如何查看缓存区内与上次提交之间的差别呢?需要使 ...