vue不操作dom实现图片轮播的示例代码


Posted in Javascript onDecember 18, 2019

本文介绍了vue不操作dom实现图片轮播的示例代码,分享给大家,具体如下:

效果

宽度为1190px且水平居中的轮播盒子;
中间是当前显示的默认尺寸图片;
左右两边是预显示的小尺寸图片;
轮播从右至左,图片逐渐放大。

vue不操作dom实现图片轮播的示例代码

做普通平滑轮播也可以参照这个思路

html

vue不操作dom实现图片轮播的示例代码

<ul>
 <li
	v-for="(demo,index) in demoList"
	:key="index"
	:class="{'demo-left':demoStyle(index) == 0,'demo-active':demoStyle(index) == 1,'demo-right':demoStyle(index) == 2}"
 >
	<img :src="demo.img" alt />
 </li>
</ul>

css

我们要写上三个li不同位置的样式和一个li默认位置的的样式。
分别是:
左边位置的dom样式;
中间位置的dom样式;
右边位置的dom样式;
默认位置的dom样式。
其中,默认的dom隐藏在中间展示的dom下面。
看图:

vue不操作dom实现图片轮播的示例代码

图中:

ul的样式:

ul {
 position: relative;
 width: 1190px;
 height: 500px;
 margin: 0 auto;
 display: flex;
}

紫色部分是默认的li的dom样式,设置在整个ul水平且垂直居中的位置

ul > li {
 position: absolute;
 width: 480px;
 min-width: 480px;
 height: 400px;
 top: 50px;
 bottom: 50px;
 left: 355px;
 font-size: 0;	/* 去除img标签留白,与轮播无关 */
 overflow: hidden;
 background: white;
 box-shadow: 0 0 10px 0 #dddddd;
 transition: 0.6s;
 z-index: 1;
}

红色部分是左边的li的dom样式,设置在整个ul水平靠左、垂直居中的位置

ul > .demo-left {
 left: 0;
 z-index: 2;
}

黑色部分是中间需要展示的li的dom样式,设置在整个ul水平靠右、垂直居中的位置

ul > .demo-active {
 width: 600px;
 min-width: 600px;
 height: 500px;
 top: 0;
 bottom: 0;
 left: 295px;
 z-index: 3;
}

蓝色部分是右边的li的dom样式,设置在整个ul水平靠右、垂直居中的位置

ul > .demo-right {
 left: 710px;
 z-index: 2;
}

图片水平且垂直居中,可自定义设置,与轮播无关

ul > li > img {
 position: absolute;
 width: 100%;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 margin: auto;
}

vue

export default {
 name: "demo",
 data() {
	return {
	 demoList: [	// 图片列表
    {
		 id: "1",
		 src: "图片路径"
		},
		{
		 id: "2",
		 src: "图片路径"
		},
		{
		 id: "3",
		 src: "图片路径"
		},
		{
		 id: "4",
		 src: "图片路径"
		},
		{
		 id: "5",
		 src: "图片路径"
		}
	 ],
	 demoActive: 0,	// 当前显示的li下标,设置为0,表示首次加载显示第一张图片
   demoTimer: null	// 定时器,声明demoTimer方便停止轮播和重新开始![在这里插入图片描述](https://img-blog.csdnimg.cn/20191217174439432.gif)轮播
	}
 },
 methods: {
 	// 根据返回值给li添加className
 	demoStyle(index) {
   if (index == this.demoActive - 1) return 0;
   if (index == this.demoActive ) return 1;
   if (index == this.demoActive + 1) return 2;
   if (this.demoActive == 0 && index == this.demoList.length - 1) return 0;
   if (this.demoActive == this.demoList.length - 1 && index == 0) return 2;
  },
  // 轮播执行
  demoCarousel() {
   this.demoActive++;
   if (this.demoActive > this.demoList.length - 1) {
    this.demoActive= 0;
   }
  }
 },
 mounted() {
  let _self = this;
  _self.$nextTick(function () {
   // 开始轮播,3秒一次
   _self.demoTimer = setInterval(_self.demoCarousel, 3000);
  });
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
Sep 26 Javascript
处理及遍历XML文档DOM元素属性及方法整理
Aug 23 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
Oct 25 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
JavaScript构造函数详解
Dec 27 Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 Javascript
详解vue的数据binding绑定原理
Apr 12 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
关于 angularJS的一些用法
Nov 29 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
使用JS来动态操作css的几种方法
Dec 18 #Javascript
基于ts的动态接口数据配置的详解
Dec 18 #Javascript
H5实现手机拍照和选择上传功能
Dec 18 #Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 #Javascript
js实现上传图片并显示图片名称
Dec 18 #Javascript
js实现多图和单图上传显示
Dec 18 #Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
Dec 18 #Javascript
You might like
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
JQuery 常用操作代码
2010/03/14 Javascript
document.getElementById介绍
2011/09/13 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
jquery实现动态画圆
2014/12/04 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
python os.rename实例用法详解
2020/12/06 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
自荐信写法介绍
2014/01/25 职场文书
酒鬼酒广告词
2014/03/21 职场文书
《菜园里》教学反思
2014/04/17 职场文书
留学经费担保书
2014/05/12 职场文书
工程承诺书怎么写
2014/05/24 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
银行自荐信范文
2015/03/25 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python