【自定义轮播图】微信小程序自定义轮播图无缝滚动
先试试效果,可以通过设置参数调整样式

微信小程序中的轮播图可以直接使用swiper组件,如下:
<swiper indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
<block wx:for="{{imgUrls}}">
<swiper-item>
<image src="{{item}}" class="slide-image" width="355" height="150"/>
</swiper-item>
</block>
</swiper>
但是为了实现上图的效果,中间一张图片,然后两遍的图片都能显示出来一点点,并且两张图片中间有空隙,于是开始自定义一个轮播图组件。起名就叫做自定义轮播图吧。
为了方便后期使用,起初设计多个参数可调:
1、自动滚动开关
2、滚动一屏所需要的时间
3、两次滚动事件的时间间隔
4、两张图片中间空隙宽度
5、左右两边新突出图片的宽度
6、开始滚动回调事件
7、滚动结束回调事件
8、数据数组,比如图片数组
####################################################
开始操作,首先需要在页面上防止wxml代码:
<view class='yxxrui-slider'>
<view style='overflow:hidden;'>
<view bindtouchcancel="sliderTouchCancel" bindtouchstart='sliderTouchStart' bindtouchend='sliderTouchEnd' bindtouchmove='sliderTouchMove' style='width:{{yxxruiSliderData.totalWidth}}px;display:flex;transform:translate({{yxxruiSliderData.x}}px,0)'>
<block wx:for="{{yxxruiSliderData.datas}}" wx:for-index="i">
<view class="slider-item" style="padding-left:{{yxxruiSliderData.blankWidth}}px;">
<form class="slider-form" bindsubmit="" report-submit="true" data-posttype="" data-posturl="" data-appId="">
<button>
<image class="slider-img" src="{{item}}"/>
</button>
</form>
</view>
</block>
</view>
</view>
<view class="slider-indicate-dots">
<block wx:for="{{yxxruiSliderData.indicateDots}}" wx:for-index="i">
<view class="slider-indicate-dot {{i==yxxruiSliderData.curPage-1?'active':''}}">
</view>
</block>
</view>
</view>
############################################
写好页面元素之后,将下边的wxss样式写进去:
1 /*自定义轮播图样式 */
2 .yxxrui-slider{
3 display: block;
4 }
5 .yxxrui-slider .slider-item{
6 position:relative;
7 display:inline-block;
8 width:100%;
9 box-sizing:border-box;
10 overflow: hidden;
11 line-height: 0;
12 }
13 .yxxrui-slider .slider-form{
14 position:relative;
15 display:inline-block;
16 width:100%;
17 }
18 .yxxrui-slider .slider-img{
19 border-radius: 14px;
20 width:100%;
21 height: 180px;
22 }
23 .yxxrui-slider .slider-item button{
24 line-height: 0;
25 box-sizing: border-box;
26 -moz-box-sizing:border-box; /* Firefox */
27 -webkit-box-sizing:border-box; /* Safari */
28 padding-left: 0;
29 padding-right: 0;
30 }
31 .yxxrui-slider .slider-indicate-dots{
32 line-height: 0;
33 z-index:9999;
34 margin-top: -14px;
35 padding-bottom: 8px;
36 position: relative;
37 text-align:center;
38 }
39 .yxxrui-slider .slider-indicate-dot{
40 width:6px;
41 height:6px;
42 background:rgba(255, 255, 255, 0.5);
43 display:inline-block;
44 margin-right:4px;
45 border-radius:100%;
46 line-height: 0;
47 box-sizing: border-box;
48 }
49 .yxxrui-slider .button-hover{
50 background: none;
51 }
52 .yxxrui-slider .slider-indicate-dot.active{
53 background: white;
54 width:16px;
55 border-radius:4px;
56 }
################################################
然后写js代码调用,当前页面的js文件需要先引入:
1 var myslider = require('../../utils/yxxrui.slider.js');
在Page的onLoad方法中初始化轮播图组件:
1 myslider.initMySlider({
2 that:this,
3 datas: [
4 '../../img/1.jpg',
5 '../../img/2.jpg',
6 '../../img/3.jpg',
7 '../../img/4.jpg'
8 ],
9 autoRun:true,
10 blankWidth : 12,
11 newImgWidth: 18,
12 interval:1500,
13 duration:200,
14 direction:'left',
15 startSlide:function(curPage){
16
17 },
18 endSlide: function (curPage){
19
20 }
21 });
其中的yxxrui.slider.js代码放到下一篇博客中,点这里直达
【自定义轮播图】微信小程序自定义轮播图无缝滚动的更多相关文章
- 微信小程序的轮播图swiper问题
微信小程序的轮播图swiper,调用后,怎样覆盖系统的 点,达到自己想要的效果 不多说,先上一图望大家多给意见: 这个是效果图: 微信小程序效果图就成这样子: <view class=" ...
- 微信小程序自定义弹窗wcPop插件|仿微信弹窗样式
微信小程序自定义组件弹窗wcPop|小程序消息提示框|toast自定义模板弹窗 平时在开发小程序的时候,弹窗应用场景还是蛮广泛的,但是微信官方提供的弹窗比较有局限性,不能自定义修改.这个时候首先想到的 ...
- 微信小程序自定义 tabbar
一定的需求情况下,无法使用小程序原生的 tabbar 的时候,需要自行实现一个和 tabbar 功能一模一样的自制组件. 查阅了海量的博客和文档之后,亲自踩坑.总结了三种在不使用微信小程序原生 tab ...
- 微信小程序——自定义导航栏
微信头部导航栏可能通过json配置: 但是有时候我们项目需求可能需要自定义头部导航栏,如下图所示: 现在具体说一下实现步骤及方法: 步骤: 1.在 app.json 里面把 "navigat ...
- 微信小程序-自定义底部导航
代码地址如下:http://www.demodashi.com/demo/14258.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- 微信小程序自定义tabbar的实现
微信小程序自定义tabbar的实现 目的:当采用微信的自定义tabbar组件的时候,切换的时候会出现闪屏的效果:当使用微信默认的tabbar的时候,限制了tabbar的数量以及灵活配置. 方案:自己动 ...
- 微信小程序 自定义导航组件 nav头部 全面屏设计
nav-dynamic 微信小程序自定义nav头部组件:适配全面屏设计: 实现功能 初始进入页面时,展示初始状态下的nav样式: 页面滚动时,监听页面滚动事件,展示滚动状态下的nav样式: 根据配置字 ...
- 微信小程序自定义组件,提示组件
微信小程序自定义组件,这里列举了一个常用的提示自定义组件,调用自定义组件中的方法和字段.仅供参考和学习. 编写组件: 在根目录下添加“components”目录,然后像添加Page页面一样添加自定义组 ...
- 微信小程序自定义Tabber,附详细源码
目录 1,前言 2,说明 3,核心代码 1,前言 分享一个完整的微信小程序自定义Tabber,tabber按钮可以设置为跳转页面,也可以设置为功能按钮.懒得看文字的可以直接去底部,博主分享了小程序代码 ...
- 微信小程序登陆流程图时序图
微信小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 微信小程序登录流程时序图 说明 调用 wx.login() 获取 临时登录凭证cod ...
随机推荐
- ucore操作系统学习(五) ucore lab5用户进程管理
1. ucore lab5介绍 ucore在lab4中实现了进程/线程机制,能够创建并进行内核线程的调度.通过上下文的切换令线程分时的获得CPU,使得不同线程能够并发的运行. 在lab5中需要更进一步 ...
- springboot打jar包将引用的第三方包、配置文件(.properties、.xml)、静态资源打在包外
1.外置配置文件 Springboot读取核心配置文件(.properties)的外部配置文件调用方式为 jar包当前目录下的/config目录 因此要外置配置文件就在jar所在目录新建config文 ...
- Java蓝桥杯01——第一题集锦:堆煤球、购物单、哪天返回、第几天、分数
堆煤球(2016JavaB) 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100 ...
- Docker Vs Podman
翻译自 Chetansingh 2020年4月24日的博文<Docker Vs Podman> [1] 容器化的一场全新革命是从 Docker 开始的,Docker 的守护进程管理着所有的 ...
- Redis分布式锁—SETNX+Lua脚本实现篇
前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...
- String、StringBUffer和StringBuilder的区别与使用
一.区别 String是一个不可变的类,即创建String对象后,该对象中的字符串是不可变的,平时我们改变String对象中的字符串实际上是通过StringBuffer实现的,所以StringBuff ...
- RocketMq(三):server端处理框架及消费数据查找实现
rocketmq作为一个高性能的消息中间件,咱们光停留在使用层面,总感觉缺点什么.虽然rocketmq的官方设计文档讲得还是比较详细的,但纸上得来终觉浅!今天我们就来亲自挖一挖rocketmq的实现细 ...
- WC.exe(基于Java实现)
一.github地址 https://github.com/Mazin-hub/MyWC.exe.git 二.PSP表格 PSP2.1 Personal Software Process Stage ...
- angular 双向数据绑定与vue数据的双向数据绑定
二者都是 MVVM 模式开发的典型代表 angular 是通过脏检测实现,angular 会将 UI 事件,请求事件,settimeout 这类延迟的对象放入到事件监测的脏队列,当数据变化的时候,触发 ...
- Java 线程安全问题的本质
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录: 线程安全问题的本质 理解CPU JVM虚拟机类比于操作系统 重排序 汇总 一些解释 ...