微信小程序之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等宽输出文字插件使用介绍
Sep 18 Javascript
jquery ajax 局部刷新小案例
Feb 08 Javascript
jquery的ajax简单结构示例代码
Feb 17 Javascript
js打开windows上的可执行文件示例
May 27 Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
JavaScript操作 url 中 search 部分方法函数
Jun 15 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
微信小程序左滑动显示菜单功能的实现
Jun 14 Javascript
p5.js码绘“跳动的小正方形”的实现代码
Oct 22 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 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 类型转换函数intval
2009/06/20 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
python多重继承实例
2014/10/11 Python
解析Python编程中的包结构
2015/10/25 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
关于多元线性回归分析——Python&amp;SPSS
2020/02/24 Python
python实现人脸签到系统
2020/04/13 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
农村党员一句话承诺
2014/05/30 职场文书
机关作风建设心得体会
2014/10/22 职场文书
党员个人年度总结
2015/02/14 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
js不常见操作运算符总结
2021/11/20 Javascript