微信小程序模拟下拉菜单开发实例详细步骤解析

why 147 2024-09-29

本文主要和大家分享微信小程序模拟下拉菜单开发实例,希望能帮助到大家。

一.知识点

1.实现动态显示和隐藏某个控件

列表1

1

2

3

4

5

6

7

8

data:{

  open:false

},

showitem:function(){

    this.setData({

        open:!this.data.open

    })

},

1

2

3

4

5

6

.display_show{

    display: block;

}

.display_none{

    display: none;

}

2.通过 data-* 和 e.target.dateset 传递参数

{{firstPerson}}

1

2

3

this.setData({

         firstPerson:e.target.dataset.me,

   })

这时:firstPerson=吃

3.弹性盒字:display:flex;

1

2

3

4

<view class="phone_one" bindtap="clickPerson">

    <view class="phone_personal">{{firstPerson}}</view>

    <image src="../../image/i.png" class="personal_image {{selectArea ? &#39;rotateRight&#39; :&#39;&#39;}}"></image>

</view>

在父级:

display:flex;
justify-content:space-between;

这样子集就会并列。justify-content:space-between;这样子集就会分别在在俩头

二.事列

(1).下拉列表

1.wxml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<view class="page">

    <view class="page_bd">

        <view class="body_head" bindtap="showitem">点击我显示下拉列表</view>

        <navigator url="pages/list/list">

            <view class="{{open?&#39;display_show&#39;:&#39;display_none&#39;}}">列表1</view>

        </navigator>

        <navigator url="pages/scroll-view/index">

            <view class="{{open?&#39;display_show&#39;:&#39;display_none&#39;}}">列表2</view>

        </navigator>

        <navigator url="pages/scroll-view/index">

            <view class="{{open?&#39;display_show&#39;:&#39;display_none&#39;}}">列表3</view>

        </navigator>

    </view>

</view>

2.wxss

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

.page_bd{

    padding: 10px;

    background-color: snow;

}

.body_head{

    border: 1px solid;

    border-color: beige;

    padding: 10px;

}

.display_show{

    display: block;

    border: 1px solid;   

    border-color: beige;

    padding: 10px;

}

.display_none{

    display: none;

}


3.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Page({

  data:{

    open:false

  },

  showitem:function(){

      this.setData({

          open:!this.data.open

      })

  },

  onLoad:function(options){

    // 页面初始化 options为页面跳转所带来的参数

  },

  onReady:function(){

    // 页面渲染完成

  },

  onShow:function(){

    // 页面显示

  },

  onHide:function(){

    // 页面隐藏

  },

  onUnload:function(){

    // 页面关闭

  }

})

image.png

(2).下拉菜单

1.wxml

1

2

3

4

5

6

7

8

9

10

11

<view class="phone_one" bindtap="clickPerson">

    <view class="phone_personal">{{firstPerson}}</view>

    <image src="../../image/i.png" class="personal_image {{selectArea ? &#39;rotateRight&#39; :&#39;&#39;}}"></image>

</view>

<view class="person_box">

    <view class="phone_select" hidden="{{selectPerson}}">

        <view class="select_one" bindtap="mySelect" data-me="吃">吃</view>

        <view class="select_one" bindtap="mySelect" data-me="喝">喝</view>

        <view class="select_one" bindtap="mySelect" data-me="玩">玩</view>

    </view>

 </view>

2.wxss

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

phone_personal{

  width: 100%;

  color:rgb(34, 154, 181);

  height:100rpx;

  line-height:100rpx;

  text-align: center;

}

.phone_one{

    display:flex;

    position:relative;

    justify-content:space-between;

    background-color:rgb(239, 239, 239);

    width:90%;

    height:100rpx;

    margin:22px auto;

    border-radius:10rpx;

    border-bottom:2rpx solid rgb(255, 255, 255);

    line-height:51px;

    padding-left:10px;

}

.person_box{

  position: relative;

}

.phone_select{

  margin-top:0;

  z-index: 100;

  position: absolute;

}

.select_one{

  text-align: center;

  background-color:rgb(239, 239, 239);

  width:676rpx;

  height:100rpx;

  line-height:100rpx;

  margin:0 5%;

  border-bottom:2rpx solid rgb(255, 255, 255);

}

.personal_image{

  z-index: 100;

  position: absolute;

  right:2.5%;

  width: 34rpx;

  height: 20rpx;

  margin:40rpx 20rpx 40rpx 0;

  transition: All 0.4s ease;

  -webkit-transition: All 0.4s ease;

}

.rotateRight{

  transform: rotate(180deg);

}

3.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

Page({

  data:{

    selectPerson:true,

    firstPerson:&#39;兴趣&#39;,

    selectArea:false,

  },

  //点击选择类型

  clickPerson:function(){

    var selectPerson = this.data.selectPerson;

    if(selectPerson == true){

        this.setData({

        selectArea:true,

        selectPerson:false,

      })

    }else{

      this.setData({

        selectArea:false,

        selectPerson:true,

      })

    }

  } ,

  //点击切换

  mySelect:function(e){

    this.setData({

      firstPerson:e.target.dataset.me,

      selectPerson:true,

      selectArea:false,

    })

  },

  onLoad:function(options){

  // 页面初始化 options为页面跳转所带来的参数

  },

  onReady:function(){

  // 页面渲染完成

  },

  onShow:function(){

  // 页面显示

  },

  onHide:function(){

  // 页面隐藏

  },

  onUnload:function(){

  // 页面关闭

  }

})

image.png



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序开发录音机音频播放及动画实现教程
下一篇:微信小程序开发弹出框实现方法全流程介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~