微信小程序之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 相关文章推荐
关于JavaScript的gzip静态压缩方法
Jan 05 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
Nov 26 Javascript
javascript 文章截取部分无损html显示实现代码
May 04 Javascript
java和javascript获取word文档的书签位置对比
Jun 19 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
JavaScript使用yield模拟多线程的方法
Mar 19 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
Feb 22 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 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 文件状态缓存带来的问题
2008/12/14 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
破解Session cookie的方法
2006/07/28 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
实例讲解React 组件
2020/07/07 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
SQLite3中文编码 Python的实现
2017/01/11 Python
详解python中requirements.txt的一切
2017/03/03 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
PHP如何删除一个Cookie值
2012/11/15 面试题
自荐信的五个重要部分
2013/10/29 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
班长演讲稿范文
2014/04/24 职场文书
区级文明单位申报材料
2014/05/15 职场文书
美食节目策划方案
2014/05/31 职场文书
2014年审计工作总结
2014/11/17 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python