微信小程序之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 相关文章推荐
Prototype RegExp对象 学习
Jul 19 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
javascript中打印当前的时间实现思路及代码
Dec 18 Javascript
Javascript 绘制 sin 曲线过程附图
Aug 21 Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
Aug 27 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
jQuery实现网页拼图游戏
Apr 22 jQuery
小试SVG之新手小白入门教程
Jan 08 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 Javascript
原生JavaScript创建不可变对象的方法简单示例
May 07 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 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创建PDF中文文档
2006/10/09 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
node.js实现端口转发
2016/04/14 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
shiro授权的实现原理
2017/09/21 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python 读取数据库并绘图的实例
2019/12/03 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
计算机操作自荐信
2013/12/07 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
学生个人总结范文
2015/02/15 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
Python天气语音播报小助手
2021/09/25 Python