vue项目全局引入vue-awesome-swiper插件做出轮播效果

在安装了vue的前提下,打开命令行窗口,输入vue init webpack swiper-test,创建一个vue项目且名为swiper-test(创建速度可能会有点慢,耐心等),博文讲完后,源码托管在GitHub中,供下载并理解。

vue项目自动生成完毕后,继续在命令行窗口输入cd swiper-test,将目录切换到swiper-test。

下面就开始启动vue项目了,输入启动命令行:npm run dev。

打开浏览器输入网址:localhost:8080

环境搭好了,进入主题,要想引入vue-awsome-swiper插件,还得下载vue-awesome-swiper模块包,我是通过npm来下载的,虽然很慢,但我有耐心。在swiper-test目录下打开命令行窗口,输入npm install vue-awesome-swiper --save。若正常的话,node_modules文件夹中就有vue-awesome-swiper文件夹以及相关文件生成。

我用开发工具Hbuilder打开swiper-test项目,找到目录src/main.js,开始编辑代码,引入vue-awesome-swiper模块:

import VueAwesomeSwiper from "vue-awesome-swiper";

  

使用模块:

Vue.use(VueAwesomeSwiper);

  

图下:

引入了结构,没有样式怎么行,所以,找到目录src/App.vue,开始编辑,在<script>标签里添加这么一行:

import "swiper/dist/css/swiper.css";  

图下:

app.Vue文件中,为了预览效果,把第三行的代码注释掉,<img src="./assets/logo.png">一般按ctrl+/就可以注释

在目录src/components下创建swiper.Vue文件,编辑此文件,可以直接使用swiper组件:<swiper></swiper>

关于swiperOption的配置问题,可以去swiper官网了解:https://www.swiper.com.cn/api/,在这里,介绍的比谁都牛逼!

swiper.vue内容如下:

<template>
	<div class="swiper-plugs">
		<swiper :options="swiperOption" refs="lwSwiper">
			<swiper-slide>
				<img src="../assets/logo.png"  />

			</swiper-slide>

			<swiper-slide>
				<img src="../assets/logo.png"  />

			</swiper-slide>

			<swiper-slide>
				<img src="../assets/logo.png"  />

			</swiper-slide>
			<!--分页器-->
			<div class="swiper-pagination" slot="pagination"></div>
			<!--前进后退按钮-->
			<div class="swiper-button-prev" slot="button-prev"></div>
			<div class="swiper-button-next" slot="button-next"></div>
			<!--滚动条-->
			<div class="swiper-scrollbar" slot="scrollbar"></div>

		</swiper>
	</div>
</template>

<script>

	export default{
		data(){
			return {
				swiperOption: {
			         autoplay : {
				      disableOnInteraction: false, //用户操作后是否禁止自动循环
				      delay: 1000 //自动循环时间
				     }, //可选选项,自动滑动
				     speed: 1000, //切换速度,即slider自动滑动开始到结束的时间(单位ms)
				     loop:false, //循环切换
				     grabCursor: false, //设置为true时,鼠标覆盖Swiper时指针会变成手掌形状,拖动时指针会变成抓手形状
				     // setWrapperSize: true, //Swiper使用flexbox布局(display: flex),开启这个设定会在Wrapper上添加等于slides相加的宽或高,在对flexbox布局的支持不是很好的浏览器中可能需要用到。
				     autoHeight: true,   //自动高度。设置为true时,wrapper和container会随着当前slide的高度而发生变化。
				     scrollbar: ‘.swiper-scrollbar‘,//显示滚动条
				     mousewheelControl: true, //设置为true时,能使用鼠标滚轮控制slide滑动
				     observeParents: false, //当改变swiper的样式(例如隐藏/显示)或者修改swiper的子元素时,自动初始化swiper

				     pagination: {
				      el: ‘.swiper-pagination‘,
				      // type : ‘progressbar‘, //分页器形状
				      clickable :true, //点击分页器的指示点分页器会控制Swiper切换
				     },
				     navigation: {
				      nextEl: ‘.swiper-button-next‘,
				      prevEl: ‘.swiper-button-prev‘,
				     },
				   }
			}
		}
	}
</script>

<style>
</style> 

想预览效果啥办?那就得给一个路由规则了,打开目录src/router/index.js,往routes数组添加一组路由规则。

index.js修改后的内容:

import Vue from ‘vue‘
import Router from ‘vue-router‘
import HelloWorld from ‘@/components/HelloWorld‘
import swiper from ‘@/components/swiper‘

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: ‘/‘,
      name: ‘HelloWorld‘,
      component: HelloWorld
    },
    {
    	path:‘/swiper‘,
    	name:‘swiper‘,
    	component:swiper
    }
  ]
})

打开浏览器,网址输入:http://localhost:8080/#/swiper

到这,就基本上有轮播效果了,但是,有个要注意的是,图片每次轮播都调用调用事件,导致页面性能低,所以,就给了一个计算属性,大大简化了运算。

swiper.vue最终的修改:<template>

	<div class="swiper-plugs">
		<swiper :options="swiperOption" refs="lwSwiper">
			<swiper-slide>
				<img src="../assets/logo.png"  />

			</swiper-slide>

			<swiper-slide>
				<img src="../assets/logo.png"  />

			</swiper-slide>

			<swiper-slide>
				<img src="../assets/logo.png"  />

			</swiper-slide>
			<!--分页器-->
			<div class="swiper-pagination" slot="pagination"></div>
			<!--前进后退按钮-->
			<div class="swiper-button-prev" slot="button-prev"></div>
			<div class="swiper-button-next" slot="button-next"></div>
			<!--滚动条-->
			<div class="swiper-scrollbar" slot="scrollbar"></div>

		</swiper>
	</div>
</template>

<script>

	export default{
		data(){
			return {
				swiperOption: {
			         autoplay : {
				      disableOnInteraction: false, //用户操作后是否禁止自动循环
				      delay: 1000 //自动循环时间
				     }, //可选选项,自动滑动
				     speed: 1000, //切换速度,即slider自动滑动开始到结束的时间(单位ms)
				     loop:false, //循环切换
				     grabCursor: false, //设置为true时,鼠标覆盖Swiper时指针会变成手掌形状,拖动时指针会变成抓手形状
				     // setWrapperSize: true, //Swiper使用flexbox布局(display: flex),开启这个设定会在Wrapper上添加等于slides相加的宽或高,在对flexbox布局的支持不是很好的浏览器中可能需要用到。
				     autoHeight: true,   //自动高度。设置为true时,wrapper和container会随着当前slide的高度而发生变化。
				     scrollbar: ‘.swiper-scrollbar‘,//显示滚动条
				     mousewheelControl: true, //设置为true时,能使用鼠标滚轮控制slide滑动
				     observeParents: false, //当改变swiper的样式(例如隐藏/显示)或者修改swiper的子元素时,自动初始化swiper

				     pagination: {
				      el: ‘.swiper-pagination‘,
				      // type : ‘progressbar‘, //分页器形状
				      clickable :true, //点击分页器的指示点分页器会控制Swiper切换
				     },
				     navigation: {
				      nextEl: ‘.swiper-button-next‘,
				      prevEl: ‘.swiper-button-prev‘,
				     },
				   }
			}
		},
		computed:{
			swiper(){
				return this.$refs.lwSwiper.swiper;
			}
		}
	}
</script>

<style>
</style>

还有注意的是,在控制台中,莫名其妙出现大量警告信息。找到目录build/webpack.base.conf.js,把43行注释掉:...(config.dev.useEslint ? [createLintingRule()] : []),保存文件,退出当前运行环境,重新输入启动命令行:npm run dev

github源码网址:https://github.com/murenziwei/swipertest

原文地址:https://www.cnblogs.com/murenziwei/p/10430206.html

时间: 2024-10-08 10:28:53

vue项目全局引入vue-awesome-swiper插件做出轮播效果的相关文章

swiper插件制作轮播图swiper2.x和3.x差别

swiper3.x只兼容到ie10+,比较适合移动端. swiper3.x官网  http://www.swiper.com.cn/ swiper2.x可以兼容到ie7+,官网是http://swiper2.swiper.com.cn/ 2.x和3.x使用上有差别 2.x需要引入 <linkrel="stylesheet"href="css/idangerous.swiper.css"><scriptsrc="js/idangerous.

Swiper 3D flow轮播使用方法

swiper 的3d轮播效果,移动端适用 (1). 如需使用Swiper的3d切换首先加载3D flow插件(js和css). <head> <link rel="stylesheet" href="css/idangerous.swiper.css"> <link rel="stylesheet" href="css/idangerous.swiper.3dflow.css"> <s

vue项目中引入Sass

Sass作为目前成熟,稳定,强大的css扩展语言,让越来越多的前端工程师喜欢上它.下面介绍了如何在vue项目 中引入Sass. 首先在项目文件夹执行命令 npm install vue-cli -g,安装vue-cli脚手架,若是已经安装了,则不必再次安装,直接 跳过这一步.接下来执行命令行vue init webpack mypro(注:mypro是项目名). 接下来安装Sass依赖包,使用以下命令行: npm install sass-loader --save-dev npm instal

基于vue项目的组件中导入mui框架初始化滑动等效果时需移除严格模式的问题

基于vue项目的组件中导入mui框架初始化滑动等效果时,控制台报错:Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them 可使用 babel-plugin -transform-remove-strict-mode 移除严格模式 可先进行$ n

在 vue 中用 transition 实现轮播效果

概述 今天我接到一个需求:轮播效果.本来我是打算使用 Swiper 实现的,但是想起来貌似 transition 也能实现.于是就试了下,真的可以,还挺简单的,于是就记录下来,供以后开发时参考,相信对其他人也有用. 参考资料:进入/离开 & 列表过渡 transition 我从官网扒了一个示例的源码,如下所示: <div id="no-mode-demo" class="demo"> <transition name="no-mo

Bootstrap的js插件之轮播(carousel)

轮播请查看以下示例,基本已经涵盖最常用的一个轮播 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>js插件_轮播</titl

jQuery实现轮播效果(二) - 插件实现

开篇 前一篇文章(jQuery实现轮播效果(一) - 基础)讲到了怎样用jquery来实现一个简单的jquery轮播效果,基本的功能已经实现了,效果看起来还令人满意,唯一不足的就是:每次需要轮播效果时,要将代码复制粘贴过去,如果有些部分需要修改(例如:轮播时的动画效果,前一篇使用的是jquery的淡入淡出效果,如果改成滑动效果,不可避免的要修改js代码),那么就需要对js代码进行修改,对我所写的jquery轮播效果的js代码不熟悉的程序员来说,修改这些js确实很困难.轮播插件所要实现的目标之一就

在 Vue 项目中引入 tinymce 富文本编辑器

项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量.简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysiwyg:微型,易用,小而美,只是 Bootstrap + jQuery... kindEditor:功能强大,代码简洁,需要配置后台,而且好久没见更新了 wangEditor:轻量.

脚手架搭建的vue项目里引入jquery和bootstrap

引入jquery: 1.在cmd输入:npm install jquery,回车,等待.. 2.在webpack.base.conf.js里进行如下操作: 3.在webpack.prod.conf.js里进行如下操作: 4.在入口文件里引入: 不知道是不是jquery版本的问题,在重构以前写的页面时,通过在.vue文件里引入js的方式将写好的js引入(该js文件里用了jquery插件),部分功能有问题 引入bootstrap 参照网上的方式进行了实践,生效了. 主要在配置文件里添加了两个配置文件