小程序使swiper标签自适应内容

小程序使swiper标签自适应内容

html:

<view class="homepage">
    <view class="head">
        <view class="{{current == 0 ? 'head-left':'head-right'}}" bindtap="switchNav" id="0">所有成员</view>
        <view class="{{current == 1 ?'head-left':'head-right'}}" bindtap="switchNav" id="1">申请列表<view class="headR-num">2</view></view>
    </view>
    <view style="flex:1;">**//主要是flex让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容:**
        <swiper class="swiper" current="{{current}}" bindchange="_changeCurrent" >
            <swiper-item style="overflow-y: auto;">
                <view class="swiperV">
                    <view class="staff"  >
                    <view class="staff-left">
                        <image src="" />
                        <view class="staffName">张三</view>
                        <view class="Notjoin">待加入</view>
                    </view>
                    <view class="rightLog"></view>
                    </view>
                    <view class="staff" >
                        <view class="staff-left">
                            <image src="" />
                            <view class="staffName">张三</view>
                            <view class="Notjoin">待加入</view>
                        </view>
                        <view class="rightLog"></view>
                    </view>
                    <view class="staff" >
                        <view class="staff-left">
                            <image src="" />
                            <view class="staffName">张三</view>
                            <view class="Notjoin">待加入</view>
                        </view>
                        <view class="rightLog"></view>
                    </view>
                    <view class="staff" >
                        <view class="staff-left">
                            <image src="" />
                            <view class="staffName">张三</view>
                            <view class="Notjoin">待加入</view>
                        </view>
                        <view class="rightLog"></view>
                    </view>
                </view>
            </swiper-item>
           <swiper-item style="overflow-y: auto;">
                <view class="remin">
                    <view class="remin-left">
                        <image src="" />
                        <view class="reminL-name">张三</view>
                        <view class="reminL-position">销售</view>
                    </view>
                    <view class="remin-right">同意</view>
                </view>
                <view class="line"><view ></view></view>
            </swiper-item>
        </swiper>
    </view>
    
</view>


css

.homepage{
    /* width: 100%; */
    width: 100%;
    height: 100%;
    display: flex;
    position: fixed;
    flex-direction: column;
    
}
.swiper{
    width: 100%;
    height: 100%;
}
.swiper swiper-item{
    width: 100%;
    height: 100%;
}

效果图:
在这里插入图片描述
在这里插入图片描述

这样就可以使swiper随着内容自适应。之前百度没有理想中的方案,希望这个可以帮到你们。

### 微信小程序 Swiper 组件在不同机型上的适配问题 #### 计算可使用高度的方法 对于微信小程序中的 `swiper` 组件,其高度确实不像网页那样能够自动适应屏幕尺寸。为了使 `swiper` 的高度能够在不同的设备上自适应,可以通过 JavaScript 动态计算可用的高度。一种常见的做法是在页面加载时获取窗口的高度并减去其他固定部分的高度,再根据屏幕宽度调整比例: ```javascript Page({ onLoad: function () { const query = wx.createSelectorQuery(); query.select('.container').boundingClientRect(); query.exec((res) => { this.setData({ winHeight: (res[0].height - 10 - 40) * 750 / res[0].width, }); }); } }); ``` 这里的 `-10-40` 是指顶部导航栏和其他固定的元素所占用的空间大小[^1]。 #### 使用 CSS 实现响应式设计 除了通过 JS 来设置高度外,还可以利用 CSS 中的相对单位来定义 `swiper` 的高度,从而更好地支持各种分辨率下的布局需求。例如,可以采用视窗单位 vw 和 vh 或者基于父级容器的比例尺来进行设定: ```css /* demo10.wxss */ swiper { width: 100%; /* 这里假设图片原始宽高比为352/1125 */ height: calc(100vw * 352 / 1125); } image { width: 100%; } ``` 这种方法适用于已知内容区域的具体宽高比率的情况,比如当轮播图内的图像具有特定的纵横比时[^4]。 #### 官方默认属性的影响 值得注意的是,默认情况下,`swiper` 标签会带有预设的样式规则,即宽度占满整个父节点而高度被限定为 150 像素。如果希望改变这一行为,则需要覆盖这些默认值以满足实际项目的需求[^2]。 综上所述,在处理微信小程序中 `swiper` 组件跨平台兼容性和视觉一致性方面,既可以选择编程方式精确控制尺寸,也可以借助灵活的CSS表达式简化工作流程;同时注意清除可能干扰效果的内置样式。
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值