微信小程序之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 相关文章推荐
js实现运行代码需要刷新的解决方法
Aug 18 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
深入分析jsonp协议原理
Sep 26 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
AngularJS表格样式简单设置方法示例
Mar 03 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
vue综合组件间的通信详解
Nov 06 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 Javascript
javascript获取元素的计算样式
May 24 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
create-react-app开发常用配置教程
Jun 25 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
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
js数组去重的方法总结
2019/01/18 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
Python 专题一 函数的基础知识
2017/03/16 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
求职自我推荐信
2014/06/25 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
运动会报道稿大全
2015/07/23 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书