微信小程序—动态下拉窗口

效果图如下:

方法:

1.通过改变文字的显示方式(换行or不换行,即white-space的属性值)来实现动态改变文字框宽窄的目的。

在wxml中,通过判断一个js数据的真假来选择文字的class:

<text class="{{show ? 'textStyle1' : 'textStyle2'}}" catchtap='onClickBasic'>{{item.text}}</text>

show的值在js中决定:

Page({
    data:{
        show:false,      
    },
    onClickBasic: function(){
        var that = this
        var temBasic = that.data.show
        this.setData({
            show:!temBasic
        })
    }
})

wxss中文字css为:

.textStyle1{
  display: block;
  line-height: 48rpx;
  font-size: 25rpx;
  font-family: MicrosoftYaHei;
  padding: 10rpx;
  text-indent: 10px;
  text-align: left;
  overflow: hidden;
}
.textStyle2{
  display: block;
  line-height: 48rpx;
  font-size: 25rpx;
  font-family: MicrosoftYaHei;
  padding: 10rpx;
  text-indent: 10px;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

2.箭头的旋转

wxml中同样通过show的值来决定箭头的朝向:

<image class='select_img {{show&&"select_img_rotate"}}' src="/images/down.png"></image>

wxss中箭头及其旋转的css如下:

.select_img{
  width: 30rpx;
  height: 20rpx;
  display: block;
  transition:transform 0.1s;
}

.select_img_rotate{
  transform:rotate(180deg); 
}

!!注意:当使用template模板时,要同时将show的值传到模板界面,即传递多个参数。使用逗号将多个参数分隔开进行传递。(若未传递show的值,会导致下拉失效):

 

<!--wxml-->
<template is="xxx" data="{{...item,show}}"/>

 

其中,xxx表示template的wxml的名字。

 

源代码:

Ps:显示的文字由后端获取,该处使用其他文本替代。

 wxml:

1 <view class='select_box'>
2   <view>
3      <text class="{{show ? 'textStyle1' : 'textStyle2' }}" catchtap='onClickBasic'>新垣结衣是我老婆,石原里美也是我老婆,桥本环奈同样是我老婆。</text>
4   </view>
5   <view class='select' catchtap='onClickBasic'>
6      <image class='select_img {{show&&"select_img_rotate"}}' src="/images/down.png"></image>      
7   </view>
8 </view>

js:

 1 Page({
 2     data:{
 3         show:false,      
 4     },
 5     onClickBasic: function(){
 6         var that = this
 7         var temBasic = that.data.show
 8         this.setData({
 9             show:!temBasic
10         })
11     }
12 })

wxss:

 1 .select_box{
 2   background: #fff;
 3   display: -webkit-box;
 4   word-break: break-all;
 5   overflow: hidden;
 6   -webkit-box-orient: vertical;
 7   position: relative;
 8   padding-left: 5px;
 9   padding-right: 5px;
10 }
11 
12 .textStyle1{
13   display: block;
14   line-height: 48rpx;
15   font-size: 25rpx;
16   font-family: MicrosoftYaHei;
17   padding: 10rpx;
18   text-indent: 10px;
19   text-align: left;
20   overflow: hidden;
21 }
22 .textStyle2{
23   display: block;
24   line-height: 48rpx;
25   font-size: 25rpx;
26   font-family: MicrosoftYaHei;
27   padding: 10rpx;
28   text-indent: 10px;
29   text-align: left;
30   overflow: hidden;
31   text-overflow: ellipsis;
32   white-space: nowrap;
33 }
34 
35 .select{
36   width: 100%;
37   height: 30rpx;
38   display: flex;
39   justify-content: center;
40 }
41 
42 .select_img{
43   width: 30rpx;
44   height: 20rpx;
45   display: block;
46   transition:transform 0.1s;
47 }
48 
49 .select_img_rotate{
50   transform:rotate(180deg); 
51 }

 

转载于:https://www.cnblogs.com/cff2121/p/9771358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 微信小程序是腾讯公司基于微信平台推出的一种轻量级应用形态,它无需用户下载安装即可在微信内直接使用。自2017年正式上线以来,小程序凭借其便捷性、易获取性和出色的用户体验迅速获得市场认可,并成为连接线上线下服务的重要桥梁。 小程序的核心特点包括: 零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用的流畅体验。 跨平台兼容:开发者一次开发,即可在多种终端设备上运行,免除了复杂的适配工作,大大提高了开发效率。 社交属性强:小程序可以无缝嵌入微信生态,支持分享至聊天窗口、朋友圈等社交场景,有利于用户间的传播和裂变增长。 丰富接口能力:提供丰富的API接口,可调用微信支付、位置服务、用户身份识别等多种功能,方便企业进行商业服务的集成与拓展。 目前,微信小程序已经覆盖了电商购物、生活服务、娱乐休闲、教育学习、工具助手等多个领域,为数以亿计的用户提供便捷的服务入口,也为众多商家和开发者提供了新的商业模式和创业机会。随着技术的不断升级和完善,小程序已成为现代移动互联网生态中不可或缺的一部分。
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 微信小程序是腾讯公司基于微信平台推出的一种轻量级应用形态,它无需用户下载安装即可在微信内直接使用。自2017年正式上线以来,小程序凭借其便捷性、易获取性和出色的用户体验迅速获得市场认可,并成为连接线上线下服务的重要桥梁。 小程序的核心特点包括: 零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用的流畅体验。 跨平台兼容:开发者一次开发,即可在多种终端设备上运行,免除了复杂的适配工作,大大提高了开发效率。 社交属性强:小程序可以无缝嵌入微信生态,支持分享至聊天窗口、朋友圈等社交场景,有利于用户间的传播和裂变增长。 丰富接口能力:提供丰富的API接口,可调用微信支付、位置服务、用户身份识别等多种功能,方便企业进行商业服务的集成与拓展。 目前,微信小程序已经覆盖了电商购物、生活服务、娱乐休闲、教育学习、工具助手等多个领域,为数以亿计的用户提供便捷的服务入口,也为众多商家和开发者提供了新的商业模式和创业机会。随着技术的不断升级和完善,小程序已成为现代移动互联网生态中不可或缺的一部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值