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的轮播图,有点坑的,需要重复最后 ...
随机推荐
- php-5.2.14 编译参数,成功的
./configure --prefix=/usr/local/php --with-config-file-path=/usr/bin --with-mysql=/usr/local/mysql - ...
- Struts1.x 基本原理及注册模块的实现
1.编写JavaBean:User,必须继承于ActionForm类 package myuser; import org.apache.struts.action.ActionForm; publi ...
- 老笔记本装xubuntu+win7
https://www.freezhongzi.info/?p=167 1 install xubuntu 分区如下 sda1 20g ext4 / sda2 80g ext4 /data sda3 ...
- iptable防范ddos攻击
Basic DoS Protection https://github.com/MPOS/php-mpos/wiki/Basic-DoS-Protection # Rule 1: Limit New ...
- 笨办法学Python(三十二)
习题 32: 循环和列表 现在你应该有能力写更有趣的程序出来了.如果你能一直跟得上,你应该已经看出将“if 语句”和“布尔表达式”结合起来可以让程序作出一些智能化的事情. 然而,我们的程序还需要能很快 ...
- java文件
File类 为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类. 在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具 ...
- nodejs的一些概念
上一节我们几乎是扫通http请求和响应的整个闭环,包括请求时候的头信息和服务器返回时候的头信息和状态码等等,这些在node的http中都能获取到,并且有相应都接口组装这些信息和返回它们,同时这些htt ...
- 2017.11.10 web中URL和URI的区别
URI:Uniform Resource Identifier,统一资源标识符: •URL:Uniform Resource Locator,统一资源定位符: •URN:Uniform Resourc ...
- python-一切事物都是对象
python:一切事物都是对象 开始接触python,在里面有一句话“一切事物都是对象”,那么如何来理解这句话呢,下面举简单的例子: a=1 b='hello't=(11,22,33) list1=[ ...
- 第33章 TIM—电容按键检测—零死角玩转STM32-F429系列
第33章 TIM—电容按键检测 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...