微信小程序实现banner图轮播(动态获取数据),自动获取图片高度

微信小程序实现banner图轮播(动态获取数据),自动获取图片高度效果图:indicator-active-color=”#007aff”//当前选中的指示点颜色js:constapp=getApp()Page({data:{//———–模拟banner图———–imgUrls:[‘/image/1545118381903.jpg’,’/imag…

大家好,又见面了,我是你们的朋友全栈君。

效果图:

微信小程序实现banner图轮播(动态获取数据),自动获取图片高度

indicator-active-color=”#007aff”//当前选中的指示点颜色 

js:

const app = getApp()

Page({
  data: {
     //-----------模拟banner图-----------
    imgUrls: [
      '/image/1545118381903.jpg',
      '/image/1545118566631.jpg'
    ],
    circular: true,
    //是否显示画板指示点  
    indicatorDots: true,
    //选中点的颜色  
    //是否竖直  
    vertical: false,
    //是否自动切换  
    autoplay: true,
    //自动切换的间隔
    interval: 3000,
    //滑动动画时长毫秒  
    duration: 1000,
    //所有图片的高度  
    imgheights: [],
    //图片宽度 
    imgwidth: 750,
    //默认  
    current: 0
  },
  imageLoad: function (e) {//获取图片真实宽度  
    var imgwidth = e.detail.width,
      imgheight = e.detail.height,
      //宽高比  
      ratio = imgwidth / imgheight;
    console.log(imgwidth, imgheight)
    //计算的高度值  
    var viewHeight = 750 / ratio;
    var imgheight = viewHeight;
    var imgheights = this.data.imgheights;
    //把每一张图片的对应的高度记录到数组里  
    imgheights[e.target.dataset.id] = imgheight;
    this.setData({
      imgheights: imgheights
    })
  },
  bindchange: function (e) {
    // console.log(e.detail.current)
    this.setData({ current: e.detail.current })
  },
   }
})

wxml:

<!-------------首页轮播图-----------------  -->
<view class='swiper'>
  <swiper indicator-dots="{
  
  {indicatorDots}}" vertical="{
  
  {vertical}}" autoplay="{
  
  {autoplay}}" duration="{
  
  {duration}}" interval='{
  
  {interval}}'indicator-active-color="#007aff" bindchange="bindchange" circular="{
  
  {circular}}" style="height:{
  
  {imgheights[current]}}rpx;">
    <block wx:for='{
  
  {imgUrls}}' wx:key="{
  
  {index}}">
      <swiper-item>
        <image src="{
  
  {item}}" data-id='{
  
  {index}}' class="slide-image" mode="widthFix" bindload="imageLoad" />
      </swiper-item>
    </block>
  </swiper>
</view>

wxss:

.swiper image {
  width: 100%;
  height: auto;
}

.swiper-image {
  height: 100%;
  width: 100%;
}

.slide-image {
  height: 100%;
  width: 100%;
  display: block;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143227.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中的compareto方法的详细介绍

    java中的compareto方法的详细介绍java中的compareto方法的详细介绍JavaComparator接口实例讲解(抽象方法、常用静态/默认方法)一.java中的compareto方法1.返回参与比较的前后两个字符串的as

    2022年7月4日
    27
  • idea激活码3月最新在线激活「建议收藏」

    idea激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    62
  • 2021年Vue最常见的面试题以及答案(面试必过)[通俗易懂]

    2021年Vue最常见的面试题以及答案(面试必过)[通俗易懂]这里写目录标题对MVVM的理解?Vue数据双向绑定原理Vue的响应式原理vue中组件的data为什么是一个函数vue中created与mounted区别Vue中computed与method的区别Vue中watch用法详解Vue中常用的一些指令说说vue的生命周期对MVVM的理解?MVVM由Model、View、ViewModel三部分构成,Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View代表UI组件,它负责将数据模型转化成UI展现出来;ViewMode

    2022年5月31日
    111
  • mac之安装aircrack-ng

    mac之安装aircrack-ng1 在使用命令 brewinstalla ng 安装 aircrack ng 时 出现了这样的问题 2 在终端中执行 brewlinkairc ng 命令后又出现了新的问题 3 在 https apple stackexchang com questions upgrading brew in el capitan 网站中看到了 brewdoctor 命令 在

    2025年10月16日
    3
  • 博途scl编程实例_博途plc编程流程

    博途scl编程实例_博途plc编程流程SCL:StructuredContorlLanguage,结构化控制语言。在TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择SCL语言。SCL语言类似计算机高级语言,如果你有C、Java、C++、Python这种高级语言的学习经历,再学习SCL就会容易很多。在用SCL语言编程时,主要用IF…THEN/FOR/WHILE语句去构造条件、循环、判断这样的结构,在这些结构中再次添加指令,去实现逻辑判断。所有程序的编写都是在纯文本的环境下编辑,不像梯形图那么直观。能把

    2022年10月7日
    2
  • JRTPLIB使用实例

    JRTPLIB使用实例这几天在看关于JRTPLIB方面的东西。在网上看了不少文章,其中有很大部分使用的JRTPLIB版本在3.0以下。在网上下载了一个JRTPLIB-3.7的库,发现里面的函数接口做了一些修改。现奉上一篇基

    2022年7月2日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号