zoukankan      html  css  js  c++  java
  • 微信小程序—动态下拉窗口

    效果图如下:

    方法:

    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 }

     

  • 相关阅读:
    VBOX虚拟化工具做VPA学习都很方便硬件信息完全实现真实模拟
    Dynamics CRM2016 使用web api来创建注释时的注意事项
    Dynamics CRM build numbers
    域控制器的角色转移
    辅域控制器的安装方法
    利用QrCode.Net生成二维码 asp.net mvc c#
    给现有的word和pdf加水印
    利用LogParser将IIS日志插入到数据库
    短文本情感分析
    Dynamics CRM Ribbon WorkBench 当ValueRule的值为空时的设置
  • 原文地址:https://www.cnblogs.com/cff2121/p/9771358.html
Copyright © 2011-2022 走看看