今回は、スワイパーカルーセルで写真の適応高さを操作する方法を説明します。スワイパーカルーセルで写真の適応高さを操作するときの注意事項を実際に見てみましょう。 。
ミニプログラムのカルーセル画像は非常にシンプルで、公式の例もありますが、唯一の欠点は、スワイパーの高さが 150px に固定されているため、受信した画像がこの高さより大きい場合は非表示になることです。画像をさまざまな解像度に適応させるにはどうすればよいでしょうか?
私のアイデアは、画面の幅を取得し、画像の幅と高さを取得して、現在の画面の幅の下にスワイパーの高さを同じ比率で設定するというものです。
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}}' //スワイパーの高さを動的に設定します
2. ページ内:
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 スタイルを直接操作するのと少し似ています
注: 画像に外側のコンテナがある場合、画像の幅はこれは、画像がデフォルトで display:inline-block 属性で設定されているため、隙間が生じます。コンテナを埋めたい場合は、display:block に設定するだけです。
この記事の事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
管理システムを実装するためにantdコンポーネントと反応する方法
以上がスワイパーカルーセルで画像の適応高さを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。