微信小程序之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 相关文章推荐
jQuery方法简洁实现隔行换色及toggleClass的使用
Mar 15 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
JQuery学习总结【二】
Dec 01 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 Javascript
详解JavaScript调用栈、尾递归和手动优化
Jun 03 Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
在VUE style中使用data中的变量的方法
Jun 19 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静态新闻列表自动生成代码
2007/06/14 PHP
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP学习笔记之二
2011/01/17 PHP
利用PHP实现短域名互转
2013/07/05 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python打印输出数组中全部元素
2018/03/13 Python
Python统计单词出现的次数
2018/04/04 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
python实现杨氏矩阵查找
2019/03/02 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
Python函数生成器原理及使用详解
2020/03/12 Python
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
爱我中华教学反思
2014/04/28 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
2015年科协工作总结
2015/05/19 职场文书