微信小程序左右滑动切换图片酷炫效果
开门见山,先上效果吧!感觉可以的用的上的再往下看。
心动吗?那就继续往下看!
先上页面结构吧,也就是wxml文件,其实可以理解成微信自己封装过的html,这个不多说了,不懂也没必要往下看了。
<scroll-view class="scroll-view_H" scroll-x scroll-with-animation style="width: 100%;height:{{windowHeight}}px" bindscroll="getSelectItem"> <block wx:for="{{proList}}" wx:key="unique" wx:for-index="id" wx:for-item="item"> <view class="scroll_item {{item.selected ? 'selected' : ''}}" data-index='{{item.index}}' bindtap='selectProItem'> <view class='proImg'><image src="{{item.proUrl}}" class="slide-image" mode="widthFix"/></view> <view class='detailBox'> <view class='proTitle'>{{item.proTitle}}</view> <view class='proDec'>{{item.proDec}}</view> <view class='proPrice'>¥{{item.proPrice}}</view> <navigator class='detailLink' url="../detail/detail?id={{item.id}}">查看详情 ></navigator> </view> </view> </block> </scroll-view>
做该效果样式就不多说了,一个默认状态样式,一个当前选中样式。(开发小程序的时候,注意class的命名,尽量不要使用层级嵌套,所以class取名的时候要注意唯一性)
.scroll-view_H{ width: 100%; text-align: center; white-space: nowrap; } .scroll_item { position: relative; width: 84%; margin: 0 1%; left: -2%; display: inline-block; border-radius: 20rpx !important ; overflow: hidden; transform: scale(0.9); box-shadow: 0 0 10px #ccc; vertical-align: top; top: 5%; height: 72%; background-color: #fff; } .scroll_item:first-child{ margin-left: 8%; left: 0; } .scroll_item:last-child{ margin-right: 8%; left: 0; } .scroll_item.selected{ transform: scale(1); border: solid 1px #ffcd54; } .scroll_item .proImg{ border-top-left-radius: 20rpx; border-top-right-radius: 20rpx; width: 100%; max-height: 200rpx; position: absolute; top: 0; left: 0; z-index: 0; } .scroll_item image { width: 100%; float: left; border-top-left-radius: 20rpx; border-top-right-radius: 20rpx; } .detailBox { padding: 30rpx 5% 30rpx 5%; float: left; width: 90%; border-bottom-left-radius: 20rpx; border-bottom-right-radius: 20rpx; position: absolute; bottom: 0; left: 0; z-index: 1; background: #fff; } .proTitle { font-size: 36rpx; color: #666; line-height: 50rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .proDec { font-size: 30rpx; color: #999; line-height: 50rpx; } .proPrice { font-size: 48rpx; color: #CA414C; line-height: 90rpx; } .detailLink{ color: #666; font-size: 30rpx; }
js部分:该效果基于小程序的组件 scroll-view 开发的,利用bindscroll事件加载回调函数。
回调事件原理:
通过滚动宽度和每个item的宽度从而获取当前滚动的item是第几位,然后给对应的item加上选中class,其他的则去除选中class。
//滑动获取选中商品 getSelectItem:function(e){ var that = this; var itemWidth = e.detail.scrollWidth / that.data.proList.length;//每个商品的宽度 var scrollLeft = e.detail.scrollLeft;//滚动宽度 var curIndex = Math.round(scrollLeft / itemWidth);//通过Math.round方法对滚动大于一半的位置进行进位 for (var i = 0, len = that.data.proList.length; i < len; ++i) { that.data.proList[i].selected = false; } that.data.proList[curIndex].selected = true; that.setData({ proList: that.data.proList, giftNo: this.data.proList[curIndex].id }); },
ps:有时候一些酷炫的效果其实实现起来非常简单,建议开发前先理清实现思路,虽然整个文章言简意赅,能看懂就自然懂,乐在分享。
微信小程序左右滑动切换图片酷炫效果的更多相关文章
- 微信小程序左右滑动切换图片酷炫效果(附效果)
开门见山,先上效果吧!感觉可以的用的上的再往下看. 心动吗?那就继续往下看! 先上页面结构吧,也就是wxml文件,其实可以理解成微信自己封装过的html,这个不多说了,不懂也没必要往下看了. < ...
- 微信小程序左右滑动切换页面示例代码--转载
微信小程序——左右滑动切换页面事件 微信小程序的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend. 这三个事件最重要的属性是pageX和pageY,表示X, ...
- 微信小程序写tab切换
微信小程序之tab切换效果,如图: 最近在学习微信小程序并把之前的公司app搬到小程序上,挑一些实现效果记录一下(主要是官方文档里没说的,毕竟官方文档只是介绍功能) .wxml代码: <view ...
- 微信小程序--canvas画布实现图片的编辑
技术:微信小程序 概述 上传图片,编辑图片大小,添加文字,改变文字颜色等 详细 代码下载:http://www.demodashi.com/demo/14789.html 概述 微信小程序--ca ...
- 微信小程序Tab选项卡切换大集合
代码地址如下:http://www.demodashi.com/demo/14028.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- 微信小程序:本地资源图片无法通过 WXSS 获取,可以使用网络图片或者 base64或者使用image标签
微信小程序:本地资源图片无法通过 WXSS 获取,可以使用网络图片或者 base64或者使用image标签 一.问题 报错信息: VM696:2 pages/user/user.wxss 中的本地资源 ...
- 微信小程序缓存滑动距离,当页面浏览到一定位置,滑动其他页面后返回该页面记录之前的滑动距离
15.微信小程序缓存滑动距离 我们在浏览页面的时候,然后左滑或者右滑到新的页面,等返回此页面,我们希望可以记录上次滑动的距离 虽然这个实现起来并不难,但是会遇到一些坑,因为scroll-view的组件 ...
- 微信小程序-显示外链图片 bug
微信小程序-显示外链图片 bug 显示外链图片 bug 403 bug 禁止外链,未授权 https://httpstatuses.com/403 image component 图片.支持 JPG. ...
- 微信小程序手势滑动卡片案例
最近工作中有项目要使用微信小程序技术进行开发,其中一项功能困扰了我很久,卡片滑动动效以及手势识别.经过一番研究和参考,现在把成果展示.记录自己踩到的坑,如果大家有需要,也可以帮助到大家. 效果图: 首 ...
随机推荐
- zabbix-server端与zabbix-agent端部署与监控
环境: [root@redis ~]# uname -a Linux redis -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 x86_64 GNU/ ...
- VMware仅主机模式虚拟机无法ping通物理机
问题描述 在VMware Workstation中新建了一个虚拟机CentOS7,网络适配器选择的是"仅主机模式",结果,物理机ping不通虚拟机,虚拟机也ping不通物理机. 原 ...
- docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker
在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p : --name tomcat_xiao_volume ...
- Pyqt4的对话框 -- 文件对话框
文件对话框允许用户选择文件或文件夹,被选择的文件可进行读或写操作 # QInputDialog 文件对话框 # 本示例包含一个菜单栏,一个状态栏和一个被设置为中心部件的文本编辑器. # 状态栏的状态信 ...
- Python如果导出失败,pass函数功能
由于服务器中有一些模块不存在,在文件中导入这些模块时提示错误,导致本地运行正常,服务器测试不通过. 此时,需要捕捉ImportError,当导入的包不存在时,pass掉定义的功能. 示例代码: try ...
- 内网IP无法访问
就是我们在3类地址中常见到内网的IP段. 10.0.0.0--10.255.255.255 172.16.0.0--172.31.255.255 192.168.0.0--192.168.255.25 ...
- HyperLedger Fabric Introduction——区块链超级账本介绍
介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...
- Tomcat多个项目部署,通过Nginx反向代理分别配置二级域名的流程
购买域名.示例:example.com 设置多个二级域名.如图: 配置tomcat文件: 修改tomcat/conf目录下的server.xml文件: 如下配置配置了3个容器,使用三个不同的端口. 请 ...
- 基于Echarts4.0实现旭日图
昨天Echarts4.0正式发布,随着4.0而来的是一系列的更新,挑几个主要的简单说明: 1.展示方面通过增量渲染技术(4.0+)ECharts 能够展现千万级的数据量 2.针对移动端优化,移动端小屏 ...
- Django App(一) StartApp
经过配置Pycharm在上一次的笔记中,已经解决了编写Django web程序调试的问题,这篇将记录Django官网提供的例子程序! 1.查看Pycharm terminal是否可用 ...