【黄啊码】微信小程序swipe切换及自适应高度问题解决

2024-04-07 18:48

本文主要是介绍【黄啊码】微信小程序swipe切换及自适应高度问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 我用的是医疗小程序挂号的例子,示例如图所示

页面代码,其中的变量这些东西需要的自己替换一下即可:

<view><view class="swiper-tab-list {{currentTab==0 ? 'on' : ''}}" data-current="0" bindtap="swichNav">挂号预约</view><view class="swiper-tab-list {{currentTab==1 ? 'on' : ''}}" data-current="1" bindtap="swichNav">医生资料</view></view><swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight}}px" bindchange="bindChange"><swiper-item class="swiper0"><view class="zjtd_line"></view><view style="padding: 20rpx;"><view class="yuyue_left"></view><text>{{doctor_time}}{{week}}</text><view class="yuyue_right"></view></view><view class="zjtd_line"></view><view class="gh_list"><view class="item" wx:for="{{get_doctor_time}}" key="index"><view class="gh_left"><view>{{item.start_time}}</view><view>{{item.end_time}}</view></view><view class="gh_money">¥{{item.doctor_price}}</view><view class="gh_num">{{item.see_num}}号</view><button class="zjtd_btn" style="width:110rpx;">预约</button><view class="zjtd_line" style="margin-bottom:10rpx;"></view></view></view></swiper-item><swiper-item class="swiper1"><view class="doctor_content" style="text-align:left;">简介:{{doctor_info.doctor_note}}</view></swiper-item>
</swiper>

js代码:

data: {currentTab: 0,
}//切换代码swichNav: function( e ) {var that = this;if( this.data.currentTab === e.target.dataset.current ) {return false;} else {that.setData( {currentTab: e.target.dataset.current})this.getElementHeight(e.target.dataset.current)}},//动态获取高度getElementHeight(element) {//创建节点选择器var query = wx.createSelectorQuery();//选择idvar that = this;if(element==0){query.select(".gh_list").boundingClientRect(function (rect) {that.setData({winHeight: rect.height+50//这里加的50是日期位置的高度,没有这个位置的可忽略})}).exec();}else{query.select(".doctor_content").boundingClientRect(function (rect) {that.setData({winHeight: rect.height})}).exec();}},bindChange: function( e ) {var that = this;that.setData( { currentTab: e.detail.current });},onLoad: function (options) {//这里利用setdata的回调函数获取已经渲染的当前切换栏目的高度this.setData({get_doctor_time:res.data},function(){this.getElementHeight(this.data.currentTab);});}

对于css,一个一个挑,太麻烦了,所以这里我直接全部晒出来

/* pages/doctor/index.wxss */
.doctor{ padding: 30rpx;overflow: hidden;background-color: #fdfdfd;
}
.doctor_img{    width: 120rpx;height: 120rpx; margin: 10rpx 4rpx 0rpx; border-radius: 5rpx; overflow: hidden;}
.doctor_img img{width:100%;height:100%;object-fit:cover;}
.doctor_word{width:75%;color:#267377;margin-left:10rpx;}
.doctor_p{line-height: 48rpx; float: left;}.b_gray{background:#ccc;}
.doctor_dir {margin: 15rpx 0rpx 0rpx 0rpx;line-height: 43rpx;text-indent: 20rpx;float: left;word-break: break-all;
}
.dir_height{line-height:43rpx;}
.doctor_left{width:94%;float:left;}
/* tab样式开始 */
.main{padding: 20rpx;
}
.swiper-tab{display: flex;margin-bottom: 10rpx;
}
.swiper-tab-list{ display: inline-block;width: 49.5%;color: #777777;text-align: center;margin-bottom: 10px;color: #ffffff;border-bottom: 1px solid #395f64;padding: 20rpx;background-color: #395f64;border-radius: 10rpx;margin-right: 3rpx;
}
.on{ color: #ffffff;border-bottom: 1px solid #c70000;padding: 20rpx;background-color: #c70000;
}.swiper-box{ width: 100%; height: auto;
}
.swiper-box view{text-align: center;
}
/* tab样式结束 */
.yuyue_left{float:left;
}
.yuyue_right{float:right;
}
.gh_list{margin-top:20rpx;
}
.gh_left{float: left;width:25%;
}
.gh_left view {background-color: #fbfbfb;color: #000;padding: 8rpx;margin-bottom: 8rpx;border: 1px solid #e6e6e6;border-radius: 10rpx;
}
.gh_money{float:left;width:25%;text-align:center;margin-top: 35rpx;
}
.gh_num{float:left;width:25%;text-align:center;margin-top: 35rpx;
}
.zjtd_btn {font-size: 28rpx;color: white;padding: 2rpx;font-weight: unset;background-color: #d20303;top: 25rpx;
}
.spfl{padding: 25rpx;font-size: 28rpx;color:#ffffff;background-color: #395f64;border-bottom:1rpx solid #d4d4d4;overflow: hidden;
}
.zkfl_lj{float: right;
}
.doctor_list{text-align: center;overflow: hidden;
}
.doc_one{width:25%;float: left;
}
.doctor_imgs{width:100%;height: 120rpx;margin: 30rpx 0rpx 13rpx;border-radius: 5rpx;overflow: hidden;
}
.doctor_txt{text-align:center;
}
.doctor_content{color:#333333;text-align: left;line-height: 40rpx;float: left;padding: 15rpx;
}

 啊码整理了一部分小程序的案例,比较适合入门的朋友入手,如果需要可以从该链接【1】、链接【2】进入

这篇关于【黄啊码】微信小程序swipe切换及自适应高度问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883388

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Java报NoClassDefFoundError异常的原因及解决

《Java报NoClassDefFoundError异常的原因及解决》在Java开发过程中,java.lang.NoClassDefFoundError是一个令人头疼的运行时错误,本文将深入探讨这一问... 目录一、问题分析二、报错原因三、解决思路四、常见场景及原因五、深入解决思路六、预http://www