下面的内容是你必须要掌握的

1.怎么让banner的宽度和屏幕的宽度相等
2.怎么让banner自动轮播和轮播间隔
3.如何添加指示器
4.如何设置指示器的颜色和大小
5.点击轮播图时触发事件
6.检测当前轮播图是那一张

我们首先创建一个slider.vue

 

修改app.js 文件的代码

import root from './src/sldier.vue'
root.el = '#root'
export default new Vue(root);

1.创建一个轮播组件,让其宽度和屏幕宽度相等
接下来,创建一个轮播图组件

<template>
<div>
<slider class="slider">
<!--在这里面写内容-->
</slider>
</div>
</template>
<script>
</script>
<style>
.slider{
width:750px;
height: 300px;
background-color: green;
}
</style>

运行后的结果如下

 

注意

系统默认使用750px表示屏幕的宽度,这个是一个相对值,系统会根据不同手机的分辨率按照比例自动计算实际的宽度值

接下来我们给其设置几张图片

 

代码如下

 <template>
<div>
<slider class="slider">
<image src="https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg" class="image"> </image>
<image src="https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg" class="image"></image>
<image src="https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg" class="image"></image>
<!--在这里面写内容-->
</slider>
</div>
</template>
<script>
export default{
}
</script>
<style>
.slider{
width:750px;
height: 300px;
background-color: green;
}
.image{
width:750px;
height: 300px;
}
</style>

从代码中我们可以看到

设置图片地址的方式是我们直接写在标签里面的,但是一般图片地址是要从服务器获取的,显然这样的方式不能满足我们实际开发,接下来我们使用Vue.js 的语法进行变量绑定

格式如下

v-bind:属性='变量'简写:属性=‘变量’

修改后的代码为

<template>
<div>
<slider class="slider">
<image :src="src1" class="image"> </image>
<image :src='src2' class="image"></image>
<image :src='src3' class="image"></image>
<!--在这里面写内容-->
</slider>
</div>
</template>
<script>
export default{
data(){
return{
src1:'https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg', src2:"https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg", src3:"https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg"
}
}
}
</script>
<style>
.slider{
width:750px;
height: 300px;
background-color: green;
}
.image{
width:750px;
height: 300px;
}
</style>

解释一下:

export default{} 这个代表js输出为一个对象,data(){} 这个是一个函数 这个是js新的语法形式,老语法是data:function(){},当然你也可以使用老语法,weex都是支持的!

对于上面这种写法还是有些笨拙,下面我们使用循环遍历的方式,来渲染我们的数据

看一下列表渲染的语法

v-for="item in array" 或 v-for=(item, index) in array

接下来看我们的代码如何写

<template>
<div>
<slider class="slider">
<image :src="src" v-for='src in images' class="image"> </image>
</slider>
</div>
</template>
<script>
export default{
data(){
return{
images:['https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg',
"https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg",
"https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg" ] }
}
}
</script>
<style>
.slider{
width:750px;
height: 300px;
background-color: green;
}
.image{
width:750px;
height: 300px;
}
</style>

注意一点

1.如果你发现自己的图片显示不出来,有可能是你的图片组件没有设置宽和高
2.weex 的图片下载需要自定有原生代码写下载缓冲逻辑,这个我们后面会详细讲解,请先使用预览工具或者我们自己的app扫码查看

2.怎么让banner自动轮播和轮播间隔

<slider class="slider" interval="3000" auto-play="true">

如果想要动态的控制这些参数,可以绑定变量,语法如下

<slider class="slider"  :interval="interval" :auto-play="autoPlay">

export default{
data(){
return {
interval:3000,
autoPlay:true
}
}
}

注意

时间单位为毫秒(ms)

3.指示器

 

一般banner轮播图都有像这样的指示器,下面教大家如何实现这样的效果,weex有个指示器组件<indicator></indicator>

我们只需要将指示器组件放在<slider> 组件内部,注意一定是里面哦,不然没有效果的

<slider class="slider">
<image :src="src" v-for='src in images' class="image"> </image>
<indicator class="indicator"></indicator>
</slider>

还有一点要注意,使用绝对定位设置指示器的位置

.indicator{
position:absolute;
left:20px;
bottom:40px;
width:100px;
height: 44px;
}

效果图如下

 

提醒各位一点

如果你发现手机上的效果和网页上的效果不一致,这个可能是weex框架的问题,请以真机上的效果为准

4.如何设置指示器的颜色和大小

item-color这是指示器没被选中的颜色
item-selected-color设置指示器被选中的颜色
item-size指示器的圆点大小

.indicator{
position:absolute;
left:20px;
bottom:40px;
width:100px;
height: 44px;
item-color:red;
item-selected-color:green;
item-size:20px;
}

5.点击轮播图时触发事件

通常我们的banner 点击之后会跳转到一个新的页面,要实现这个功能首先要相应点击效果,并且知道单机的是那一个banner

<template>
<div>
<slider class="slider">
<image :src="src" v-for='(src,index) in images' class="image" @click='click(index)'> </image>
<indicator class="indicator"></indicator>
</slider>
</div>
</template>

我们使用v-for=“(src,index) in images”也将索引值遍历一下,目的是要将index当做参数传递给方法

问题来了,这个方法写在哪里了,Vue给我提供了一个methods对象,让我们把事件方法都写在这个里面,如下

export default{
data(){
return{
images:['https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg', "https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg", "https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg" ]
}
}
,methods:{
click(e){
console.log(e)
}
}
}

注意data是方法,methods是对象

6.检测当前轮播图是那一张

知道当前banner是那一张,这个需求不是很常用,但是我们还是学习一下

<slider class="slider" interval='1000' auto-play="true" @change="change">
//同上
<slider>

我们看一下方法如何定义

<script>
var modal = weex.requireModule('modal')
export default{
data(){
return{
images:['https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg', "https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg", "https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg" ]
}
}
,methods:{
click(e){
},
change(event){
modal.toast({message:event.index,duration:1})
}
}
}
</script>

有义务提醒一下各位

change(event) event 这个参数,系统会传递给我们定义的函数,我们获取它的一个属性index, 这个就是banner的索引值,有一个坑,先说一下,网页是获取不到这个index值的请使用真机测试

var modal = weex.requireModule('modal') 引入这个模块,可以实现弹窗效果,toast()是它的一个方法,可以实现提示语效果,关于这个模块的使用方法我们后面会讲到,不是本节的主要内容,还有如何自定义模块,之后的文章都会讲到,请继续阅读!

weex 轮播如何使用?的更多相关文章

  1. 踩石行动:ViewPager无限轮播的坑

    2016-6-19 前言 View轮播效果在app中很常见,一想到左右滑动的效果就很容易想到使用ViewPager来实现.对于像我们常说的banner这样的效果,具备无限滑动的功能是可以用ViewPa ...

  2. 原生js+css3实现图片自动切换,图片轮播

    运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...

  3. 纯javaScript、jQuery实现个性化图片轮播

    纯javaScript实现个性化图片轮播 轮播原理说明<如上图所示>: 1. 画布部分(可视区域)属性说明:overflow:hidden使得超出画布部分隐藏或说不可见.position: ...

  4. jQuery个性化图片轮播效果

    jQuery个性化图片轮播效果 购物产品展示:图片轮播器<效果如下所示> 思路说明: 每隔一段时间,实现图片的自动切换及选项卡选中效果,鼠标划入图片动画停止,划出或离开动画开始 两个区域: ...

  5. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  6. JS案例之2——cycle元素轮播

    元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...

  7. BootStrap_04之jQuery插件(导航、轮播)、以及Less

    1.列偏移与列排序: ①列偏移:控制列出现的位置,某列偏移后,后序列会随之偏移--只能右偏移: col-lg/md/sm/xs-offset-*; ②列排序:控制某一列的位置,该列可以左(pull)右 ...

  8. iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)

    这两天使用Reveal工具查看"手机淘宝"App的UI层次时,发现其图片轮播使用了三个UIButton的复用来实现的图片循环无缝滚动.于是乎就有了今天这篇博客,看到“手机淘宝”这个 ...

  9. 原生JS实现"旋转木马"效果的图片轮播插件

    一.写在最前面 最近都忙一些杂七杂八的事情,复习软考.研读经典...好像都好久没写过博客了... 我自己写过三个图片轮播,一个是简单的原生JS实现的,没有什么动画效果的,一个是结合JQuery实现的, ...

随机推荐

  1. vue 的多页面应用

    vue-cli3 中构建多页面的应用 第一步:先创建一个 vue-cli3 的项目:vue create app 然后运行项目:npm run serve 现在开始多页面的应用: 首先在 src 的目 ...

  2. This sample is for changing from “float64” to “int” for values did unmarshal using map[string]interface{}. When it did unmarshal using map[string]interface{}, a number with “int” was changed to “floa

    This sample is for changing from “float64” to “int” for values did unmarshal using map[string]interf ...

  3. a标签的伪类

    a 超链接 伪类:给元素添加特殊的效果 :link 未访问过的链接初始颜色 :visited 访问过后的链接颜色 :hover 鼠标移入(悬停)时的颜色 :active 鼠标按下时链接的颜色 书写时的 ...

  4. LC 648. Replace Words

    In English, we have a concept called root, which can be followed by some other words to form another ...

  5. thinkphp6.0 nginx 配置

    location / {     index index.php;     #如果文件不存在则尝试TP解析     if (!-e $request_filename) {        rewrit ...

  6. python操作轻量级数据库

    1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ import sqlite3 2. 创建/打开数据库 ...

  7. 积累-T

    emmm,各种知识点都有吧,主要方便自己记 随机修改网页图标 <script> var image=new Array(3); image.length=3; image[1]=" ...

  8. 【机器学习】Learning to Rank之Ranking SVM 简介

    Learning to Rank之Ranking SVM 简介 排序一直是信息检索的核心问题之一,Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning t ...

  9. [Python3] 040 文件 一般使用

    目录 文件 1. open 函数 2. with 语句 3. 先写再读 3.1 写 3.2 读 4. "位置"的查询与移动 4.1 tell() 4.2 seek(cookie, ...

  10. asp.net之后台使用根目录运算符

    在asp.net前台,大家会经常使用根目录运算符~.这样,可以不用考虑网站的配置目录. 有时,需要在后台设置路径,同样需要使用根目录运算符.好吧,其实我每次需要使用这种方法,就需要在baidu上查找如 ...