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


Posted in Javascript onApril 23, 2018

小程序中的轮播图很简单,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,这样如果传入的图片大于这个高度就会被隐藏。辣么,怎样让图片自适应不同分辨率捏。

我的思路是:获取屏幕宽度,获取图片的宽高,然后等比设置当前屏幕宽度下swiper的高度。

1.结构

<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" indicator-active-color="{{bg}}" style='height:{{Height}}'>
   <block wx:for="{{imgUrls}}">
    <swiper-item>
      <image src="{{item}}" class="slide-image" mode="widthFix" bindload='imgHeight'/>  //bindload是绑定图片加载的事件,记得给image加上mode=“widthFix”这个属性哦,还有就是设置这个image 100%宽度哟
    </swiper-item>
   </block>
</swiper>

swiper的各个属性在官方文档中都有,这里就不说明了。最主要的是: style='height:{{Height}}' //动态设置swiper的高度

2.在page里面:

data: {
  imgUrls: [          
    '../img/goodsDetail/goods.png',
    '../img/goodsDetail/goods.png',
    '../img/goodsDetail/goods.png'
  ],
  indicatorDots: true,
  autoplay: true,
  interval: 5000,
  duration: 1300,
  bg: '#C79C77',
  Height:""     //这是swiper要动态设置的高度属性
 },
imgHeight:function(e){
  var winWid = wx.getSystemInfoSync().windowWidth; //获取当前屏幕的宽度
  var imgh=e.detail.height;//图片高度
  var imgw=e.detail.width;//图片宽度
  var swiperH=winWid*imgh/imgw + "px"//等比设置swiper的高度。 即 屏幕宽度 / swiper高度 = 图片宽度 / 图片高度  ==》swiper高度 = 屏幕宽度 * 图片高度 / 图片宽度
  this.setData({
    Height:swiperH//设置高度
  })
},

总结:获取当前屏幕宽度: wx.getSystemInfoSync().windowWidth

在小程序里动态设置属性,只有通过setData({ })来设置,和js中直接操作css样式有一点类似

注意:image如果外层有个容器装,然后image设置width为100%之后,距离装它的容器底部有一点距离,那是因为image是默认设置的display:inline-block属性,这个属性会产生间隙。如果要撑满容器,设置为display:block就可以了。

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

Javascript 相关文章推荐
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
JQuery 弹出框定位实现方法
Dec 02 Javascript
JSON辅助格式化处理方法
Mar 26 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
Oct 17 Javascript
JQuery显示隐藏页面元素的方法总结
Apr 16 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
JS实现可点击展开与关闭的左侧广告代码
Sep 02 Javascript
jQuery带进度条全屏图片轮播特效代码分享
Jun 28 Javascript
JQuery学习总结【二】
Dec 01 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
vue-router中的hash和history两种模式的区别
Jul 17 Javascript
vue.js中实现登录控制的方法示例
Apr 23 #Javascript
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 #Javascript
Vue前端开发规范整理(推荐)
Apr 23 #Javascript
Vue 中mixin 的用法详解
Apr 23 #Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 #Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
Apr 23 #Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
Apr 23 #Javascript
You might like
PHP 高手之路(三)
2006/10/09 PHP
PHP的中问验证码
2006/11/25 PHP
PHP生成条形图的方法
2014/12/10 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
初二物理教学反思
2014/01/29 职场文书
投标担保书范文
2014/04/02 职场文书
春节请假条
2014/04/11 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
教代会开幕词
2015/01/28 职场文书
KTV员工管理制度
2015/08/06 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
SQL之各种join小结详细讲解
2021/08/04 MySQL
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis