swiper高度自适应_小程序 swiper 图片高度自适应+预览图片
一、概述:
在开发小程序的项目中,经常会用到swiper这个轮播组件,但是使用的时候会有一个问题,swiper系统会默认一个高度而且是px为单位的,如下:
swiper {
display:block;
height:150px;
}
这些参数可以用其它样式覆盖,但是图片不可能固定高度。image的高度是无法用px固定单位,一般是宽固定 rpx,mode="widthFix" 高度自适应。下面就开始介绍如何用图片在swiper自适应高度,而不会被遮住。
实际效果图如下:
二、实现过程:
1、小程序布局页面wxml
2、小程序 js页面
Page({
/**
* 页面的初始数据
*/
data: {
currentNavtab: 0,//当前第几个swiper
bannerlist: ["http://i2.letvimg.com/lc10_yunzhuanma/201709/25/17/59/5820beca6a5f2d8ad7ebcc9754bbf536_v2_MTMyNjA4NDE2/thumb/2_640_480.jpg", "http://i1.letvimg.com/lc09_yunzhuanma/201711/23/13/13/240be0b0ec63013fd97f1062b16b6043_v2_MTMzMjI3NDUy/thumb/2_640_480.jpg", "http://i1.letvimg.com/lc10_yunzhuanma/201711/23/14/02/c3faf8192281dd307c74957259cf6de3_v2_MTMzMjI3OTEw/thumb/2_640_480.jpg"],//图片切换数组
indicatorDots: true,
autoplay: true,
interval: 5000,
duration: 500,
scrollWidth: 0,
imgheights: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that=this;
wx.getSystemInfo({
success: function (res) {
//获取屏幕的宽度并保存
that.setData({
scrollWidth: res.windowWidth
});
}
});
},
/*** 预览图片****/
previewImage: function (e) {
var current = e.currentTarget.dataset.src;
wx.previewImage({
current: current,// 当前显示图片的http链接
urls: this.data.bannerlist // 需要预览的图片http链接列表
})
},
//等比缩放图片并保存
imageLoad: function (e) {
//获取图片真实宽度
var imgwidth = e.detail.width,
imgheight = e.detail.height,
//宽高比
ratio = imgwidth / imgheight;
//console.log(imgwidth, imgheight);
//计算的高度值
var viewHeight = parseInt(this.data.scrollWidth) / ratio;
var imgheight = viewHeight.toFixed(0);
var imgheightarray = this.data.imgheights;
//把每一张图片的高度记录到数组里
imgheightarray.push(imgheight);
this.setData({
imgheights: imgheightarray,
});
},
swiperChange: function (e) {
//console.log(e.detail.current);
this.setData({
currentNavtab: e.detail.current
})
}
})
三、结语:
小程序使用起来还是比较麻烦需要去获取图片的真实高度,然后等比缩放,在swiperChange的时候去动态改变高度。
大家有什么问题或技术上的想法可以在此与大家分享,也可以加入前端爱好者QQ群(141999928)一起学习进步:【幸凡前端技术交流群】
0
如果您觉得本文的内容对您的学习有所帮助,捐赠与共勉,支付宝(左)或微信(右)
swiper高度自适应_小程序 swiper 图片高度自适应+预览图片相关推荐
- 微信小程序 解决请求服务器手机预览请求不到数据的方法
微信小程序 解决请求服务器手机预览请求不到数据的方法 微信小程序的文档中明确说明了所有的请求是必须使用https的,以没用过https,由于小程序,不得不接触到https,研究了好长时间把tomcat ...
- 小红书多图剪裁+微信图片选择器+大图预览+图片剪裁等等 相册
最近发现一个挺不错的开源库,推荐给大家. 简介:小红书多图剪裁+微信图片选择器+大图预览+图片剪裁(支持圆形剪裁和镂空剪裁),已适配androidQ,借鉴并升级matisse加载内核!超强定制性可轻松 ...
- python 在线预览文件_用Python PyQt写一个在线预览图片的GUI
在爬完网上一篇帖子,并得到其中的所有图片链接后,写一个GUI来实现在线预览是一个很自然的想法, 相当于实现一个python版的图片浏览器, 通过这个练习,可以让我们更熟悉PyQt这个库. 这里我用的是 ...
- swiper高度自适应_小程序自定义导航自适应高度
小程序导航条自定义,高度自适应iphoneX等刘海手机和其他手机,开启导航自定义需要在app.json文件里将window的 navigationStyle属性设置为: custom,开启导航自定义可 ...
- vue swiper中点击预览图片 全屏预览图片 vue点击查看大图
希望实现的效果,见下图 使用到的插件 使用到的插件 vue-photo-preview 第一步:安装插件 npm install vue-photo-preview --save 第二步:引用 imp ...
- uni-app小程序本地打包超过2M不能预览问题;小程序打包过大不能预览和真机调试;uni-app分包;
一.问题:我们在小程序工具中开发时候,需要本地打包,但是当本地的打包文件大于2M时候,预览的二维码就会有问题,导致真机扫码打不开或者有遗漏. 二.此时就需要开启分包 1.微信小程序每个分包的大小是2M ...
- uni-app 微信小程序 支付宝小程序(alipay) 百度小程序(baidu),预览pdf(链接和base64) 及下载(仅微信),window.open uni.downloadFile
废话不多说直接上代码吧 之前搜了一大堆有的没的,最终还是小伙伴巴拉文档一起找到的方案(离不开小伙伴的帮助,自己总容易陷入死局,在此鸣谢 疾风李青!): 想起个事:一定要给这些路径的域名配到相应的开发管 ...
- 微信小程序打开pdf文件;uni-app下载打开pdf文件;uni-app微信小程序下载打开pdf文件预览;
1.首先需要在小程序后台-开发设置-服务器域名 配置好下载的域名.不配置:会导致下载失败和打开文件失败: 2.pdf文件的url要确保可以浏览器直接打开. <template><vi ...
- 微信小程序---下载、打开及预览PDF文件的方法
微信小程序的常用功能:打开PDF格式的文档.小程序的官方API是 wx.downloadFile.wx.openDocument(点击可以直接跳转到官方文档的解释) 详细用法请看Demo: //下载P ...
最新文章
- 【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例
- create-react-app支持antd按需导入
- React.js 小书 Lesson5 - React.js 基本环境安装
- Xming+putty操作篇
- 2016百度之星 - 资格赛(Astar Round1)
- dw1000 配置无法通过
- 微信小程序textArea组件字数限制
- linux初始化root密码
- 电脑卡顿不流畅是什么原因_为什么安卓系统用久了会卡,苹果系统却依然流畅?原因找到了!...
- ajax加载进度百分比,在ajax中显示加载百分比的进度条,php
- Mobaxterm中使用git log报错/bin/busybox.exe less -R no such file or directory
- python sys模块详解_python之sys模块详解
- 简单触发器的使用 -- 献给SQL初学者
- vim 的复制粘贴剪切
- C语言练手题(52个小练习)
- C语言中bzero函数
- 虚拟串口软件VSPD下载安装及使用 包含XCOM串口调试软件
- 考研题目 第二章线性表
- java数据结构运动会分数统计,数据结构实验报告(运动会分数统计系)..doc
- 区块链概念及简单介绍