微信小程序实现轮播图(适配机型)

本文实例为大家分享了微信小程序实现轮播图的具体代码,供大家参考,具体内容如下

1、wxss样式:

/* 页面显示图片的框 */
.showTableBox {
    position: relative;
    width: 100%;
    height: 180px;
    overflow: hidden;
}

/* img图片所在的父元素盒子,有几张img,width就设置百分之几百 */
.slideshowImgBox {
    position: absolute;
    z-index: 1;
    width: 500%;
    height: 100%;
}

/* img width设置为: 100% / 图片总数 的百分比 */
.slideshowImgBox image {
    width: 20%;
    height: 100%;
    float: left;
}
/* 下方小圆点样式*/
.circleBox {
    width: 100%;
    position: absolute;
    bottom: 10px;
    justify-content: center;
}

.circle {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: #F5F5F5;
    margin: 0 5px;
    z-index: 999;
}

.circleActive {
    background-color: #BF360C;
}

其实到这里适配就完成啦,下面是怎么手写一个轮播图哈哈

2、js代码:

page({
  data: {
        leftNum: 0,//type为number的偏移量,方便计算
        imgLeft: "0", //偏移量,
        screenWidth: 0, //屏幕width
        changCircleIndex: 0, //对应圆球的下标,css根据页面下标显示对应class
        slideshowImgs: ["../images/beiJing.jpg", "../images/chengDu.jpg",
            "../images/shangHai.jpg", "../images/chongQing.jpg", "../images/beiJing.jpg"
        ],
},
 onLoad: function (options) {
        this.setData({
            screenWidth: wx.getSystemInfoSync().windowWidth //获取屏幕宽度
        })
        this.imageCarousel()
    },

    imageCarousel: function () {
        let imgOverallWidth = this.data.screenWidth * (this.data.slideshowImgs.length - 1)
        let timer = setInterval(() => {
            this.data.imgLeft = `${this.data.leftNum -= this.data.screenWidth}px`
            this.setData({
                imgLeft: this.data.imgLeft,
                changCircleIndex: -(this.data.leftNum / this.data.screenWidth)
            })
            if (this.data.leftNum === -imgOverallWidth) {
                this.setData({
                    changCircleIndex: 0,
                    leftNum: 0,
                    imgLeft: `${this.data.leftNum}px`
                })
            }
        }, 3000)
    },
})

3、wxml代码:

<view class="photo">
    <view class="photoFixedBox">
        <view class="showTableBox">
            <view class="slideshowImgBox" style="left:{{imgLeft}};">
<!--这里列表渲染的图片一共五张,第一张和最后一张是同一张图,防止轮播时出现白屏 -->
                <image wx:for="{{slideshowImgs}}" src="{{item}}"></image>
            </view>
            <view class="circleBox flex">
        <!-- {{changCircleIndex === index ? 'circleActive' : ''}}"是动态class,根据index来改变圆点颜色  -->
                <view wx:for="{{slideshowImgs.length-1}}" class="circle {{changCircleIndex === index ? 'circleActive' : ''}}"></view>
            </view>
        </view>
        <view class="photoClassifyBigBOx">
            <view class="imgClassifyBox flex"  wx:for="{{imgClassify}}"><text>{{item}}</text></view>
        </view>
    </view>
</view>

以上就是整个轮播图的实现啦,圆点的变色显示index根据图片left的偏移量距离来计算:偏移量 / 显示框的宽度,
其实微信小程序有swiper组件,使用也是很方便的。

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

(0)

相关推荐

  • 微信小程序视图容器(swiper)组件创建轮播图

    本文为大家分享了微信小程序swiper组件创建轮播图的具体代码,供大家参考,具体内容如下 一.视图容器(Swiper) 1.swiper:滑块视图容器 微信官方文档 二.swiper应用 1.页面逻辑(index.js) Page({ data: { imgUrls: [ { link: '/pages/index/index', url: '/images/001.jpg' }, { link: '/pages/list/list', url: '/images/002.jpg' }, { l

  • 微信小程序使用swiper组件实现层叠轮播图

    本文实例为大家分享了微信小程序实现层叠轮播图的具体代码,供大家参考,具体内容如下 wxml: <view class="banner-swiper"> <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" current='{{swiperCurrent}}' indicator-color="{{beforeColor}}" i

  • 微信小程序 轮播图swiper详解及实例(源码下载)

    微信小程序 swiper 轮播图 前言: 1.更新了v0.12的版本后,每次保存都弹出来一个打开文件窗口. 2.swiper组件的属性indicator-dots,值为false时,面板指示点还是显示.要把indicator-dots属性直接删掉. 下面进入正题:默认的swiper面板指示点都是小圆点黑灰的,但这满足不了广大小伙伴需求,比如其他颜色的,椭圆形的,方形的等等.... 首先当然是要禁用掉(直接删掉)swiper属性indicator-dots,再用view组件模拟dots,对应的代码

  • 微信小程序实现Swiper轮播图效果

    本文实例为大家分享了微信小程序轮播图的具体代码,供大家参考,具体内容如下 1.逻辑层 mine.js // pages/mine/mine.js Page({ /** * 页面的初始数据 */ data: { /*轮播图 配置*/ imgUrls: [ 'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg', 'http://img06.tooopen.com/images/20160818/tooopen_s

  • 微信小程序之swiper轮播图中的图片自适应高度的方法

    小程序中的轮播图很简单,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,这样如果传入的图片大于这个高度就会被隐藏.辣么,怎样让图片自适应不同分辨率捏. 我的思路是:获取屏幕宽度,获取图片的宽高,然后等比设置当前屏幕宽度下swiper的高度. 1.结构 <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}

  • 微信小程序 swiper组件轮播图详解及实例

    微信小程序 swiper组件轮播图 照着开发文档尝试,总是能有所收获.之前做Android开发,做个轮播图并不简单,用上viewpage再设置圆点,折腾一通之后还一堆bug.今天尝试微信小程序开发做轮播图,真是感动的泪流满面.废话说完了,上图. 上图就是一个简易的轮播图,是不是很简易.23333 主要是代码也很简单. 1.index.wxml <!--index.wxml--> <swiper class="swiper" indicator-dots="t

  • 微信小程序使用swiper组件实现类3D轮播图

    Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端. Swiper能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果. Swiper开源.免费.稳定.使用简单.功能强大,是架构移动终端网站的重要选择! 在写微信小程序时,有写到实现3D轮播图的效果,可以直接使用微信小程序中自带的组件swiper来实现 效果图如下: 1.swiper的相关属性 indicator-dots 是否显示小圆点,也可以自己重新设置小圆点 circular 是否衔接滑动,就是实现无限

  • 微信小程序实现轮播图效果

    微信小程序实现轮播图,和网站,APP的效果差不多,代码少,效率高. 先来看看效果图: 主要用swiper + swiper-item来实现 <view class='swiper'>滑块视图容器</view> <!-- indicator-dots='true' 是否显示指示点 默认 false indicator-color:指示点颜色 indicator-active-color:选中的指示点颜色 autoplay:是否自动切换 默认:false interval:自动切

  • 微信小程序实现的3d轮播图效果示例【基于swiper组件】

    本文实例讲述了微信小程序实现的3d轮播图效果.分享给大家供大家参考,具体如下: 前面写过一篇3d轮播,就是这篇,使用的方法比较笨拙,而且代码不简洁.这次发现swiper也能实现同样的效果.故记录一下. 先看看效果: wxml: <swiper previous-margin='50px' next-margin='50px' bindchange="swiperChange" style='height:{{swiperH}};'> <swiper-item wx:f

  • 微信小程序实战之轮播图(3)

    轮播图是大部分应用的一个常用的功能,常用于广告投放.产品展示.活动展示等等. 漂亮的轮播图效果可以吸引用户的点击,达到推广产品的作用. 废话少说,下面开始动手. 业务需求: 5个图片轮番播放,可以左右滑动,点击指示点可以切换图片 重点说明: 由于微信小程序,整个项目编译后的大小不能超过1M 查看做轮播图功能的一张图片大小都已经有100+k了 那么我们可以把图片放在服务器上,发送请求来获取. index.wxml: 这里使用小程序提供的<swiper>组件 autoplay:自动播放 inter

随机推荐