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的轮播图,有点坑的,需要重复最后 ...
随机推荐
- The eleventh day
What's the damage? Thanks so much for fixing the break on my car . What's the damage for the work yo ...
- tween.js 插件
1.是什么? jQueryTween是一款轻量级的jQuery补间动画工具库插件.使用jQueryTween可以制作出各种平滑的动画过渡效果.该插件基于tween.js,旨在简化各种补间动画操作,提供 ...
- 算法练习-寻找最小的k个数
练习问题来源 https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/02.01.html 要求 输入n个整数, ...
- 数据批量删除_从页面js到后台数据库
LayUI 批量选择的 ,然后操作 batchdel: function () { var checkStatus = table.checkStatus('LAY-gridview') , ch ...
- yii2.0安装ElasticSearch及使用
yii2.0安装ElasticSearch安装及使用教程:https://www.yiichina.com/tutorial/1046 Elasticsearch 权威指南(中文版):https:// ...
- **611. Valid Triangle Number three pointer O(n^3) -> square(binary search larget number smaller than target)
Given an array consists of non-negative integers, your task is to count the number of triplets chose ...
- TCP与虚连接
http://bbs.csdn.net/topics/390262738 在TCP通信时,会建立一个从源端到目的端的虚拟连接.感觉这种连接类似电路交换,只是这种连接是虚拟存在的.发送的报文都应该是沿着 ...
- CORS跨域限制以及预请求验证
之前我们可以通过“Access-Control-Allow-Origin”,实现跨域请求,那是不是所有跨域请求都可以通过设置Access-Control-Allow-Origin实现跨域请求呢?显然不 ...
- 线程 Thread类 的四个构造方法简介
在线程中,Thread类有四个构造方法: 当我们使用 Thread类创建对象的时候,传入参数,就会用到构造方法.ThreadStart 和ParameterizedThreadStart 都是 委托类 ...
- Spring Security 之集群Session配置
1. 新建Maven项目 cluster-session 2. pom.xml <project xmlns="http://maven.apache.org/POM/4.0. ...