当前位置:   article > 正文

简单的 u-popup 弹出框

u-popup

          uniapp中的popup组件可以用于弹出简单的提示框、操作框、菜单等。它可以通过position属性控制弹出框的位置,不同的position值会使得弹出框呈现不同的弹出形式

目录

一、实现思路

二、实现步骤

    ①view部分展示

     ②JavaScript 内容

     ③css中样式展示

三、效果展示

四、小结 + 注意事项


一、实现思路

      在需要的标签绑定了一个点击事件,点击按钮可以控制显示或隐藏uni-popup组件。

       uni-popup组件的v-model值与data中定义@close="show = false" @open="show = true" 变量绑定,

         uni-popup组件的position属性设置为"bottom",表示从底部弹出。

         uni-popup组件的show属性设置为true,表示显示遮罩层。

         uni-popup组件的animation属性设置为pop-up,表示弹出动画效果为pop-up。

        uni-popup组件中的内容可以自定义,这里是一个简单的view标签,包含一些文字和按钮。

        uni-popup组件支持拖曳的功能,默认开启拖曳的方式为长按拖动或鼠标拖动。

二、实现步骤

        ①view部分展示

  1. <template>
  2. <view style="margin-top: 300rpx;">
  3. <view class="records">
  4. <view v-for="(item, index) in tabList" class="getlist" :key="index">
  5. <view class="flex-between" style="margin-top: 32rpx;">
  6. <!-- 弹出排列 -->
  7. <view>{{ item.cations }}</view>
  8. <view class="flex" @click="handleSelectCategroy(index)">
  9. <view class="flex">
  10. <view style="margin-right: 10rpx;color: #999; font-size: 32rpx;">{{ item.categoryText }}
  11. </view>
  12. <view style="margin-left: 12rpx;">
  13. <u-icon name="arrow-right" size="14" color="#666"></u-icon>
  14. </view>
  15. </view>
  16. </view>
  17. </view>
  18. </view>
  19. </view>
  20. <!-- 弹出层内容 -->
  21. <u-popup :show="show" mode="bottom" @close="show = false" @open="show = true" closeable="true">
  22. <view style="border-bottom: 1rpx solid #E5E5E5;padding:24rpx 0 32rpx; text-align: center;">选择</view>
  23. <view class="flex-colomn">
  24. <view v-for="(item, index) in arrlist" class="flex-between .ui-font" :key="index" @click="tab(item)"
  25. style="border-bottom: 1rpx solid #E5E5E5;padding:32rpx 24rpx; ">
  26. <view :class="[titleText === item.title ? 'active' : '']">{{ item.title }}</view>
  27. <view>
  28. <u-icon name="checkmark" size="15"></u-icon>
  29. </view>
  30. </view>
  31. </view>
  32. </u-popup>
  33. </view>
  34. </template>

     ②JavaScript 内容

  1. <script>
  2. export default {
  3. data() {
  4. return {
  5. //弹出层
  6. show: false,
  7. titleText: '巧克力饼干',
  8. arrlist: [{
  9. id: 1,
  10. title: '西红柿小面包'
  11. }, {
  12. id: 2,
  13. title: '其他'
  14. }, {
  15. id: 3,
  16. title: '其他001'
  17. }, {
  18. id: 4,
  19. title: '小其他'
  20. }, {
  21. id: 5,
  22. title: '大其他'
  23. }],
  24. tabList: [{
  25. cations: "选择你喜欢的面包",
  26. categoryText: "请选择你喜欢的"
  27. }, ]
  28. };
  29. },
  30. methods: {
  31. // 弹出选择值
  32. handleSelectCategroy(index) {
  33. this.show = true //当前弹出层为true
  34. this.curActiveCategroyIndex = index
  35. },
  36. valChange(e) {
  37. console.log('当前值为: ' + e.value)
  38. },
  39. tab(item) {
  40. this.show = false
  41. this.titleText = item.title
  42. this.tabList = this.tabList.map((it, i) => {
  43. if (this.curActiveCategroyIndex === i) {
  44. it.categoryText = this.titleText
  45. }
  46. return it
  47. })
  48. },
  49. }
  50. }
  51. </script>

        ③css中样式展示

  1. <style lang="scss" scoped>
  2. .records {
  3. padding: 24rpx;
  4. background: #FFFFFF;
  5. border-radius: 16rpx;
  6. }
  7. .ui-font {
  8. font-size: 28rpx;
  9. color: #333333;
  10. text-align: center;
  11. border-bottom: 1rpx solid #E5E5E5;
  12. padding: 28rpx 0px;
  13. }
  14. .active {
  15. color: #428AF6
  16. }
  17. </style>

三、效果展示

                

四、小结 + 注意事项

1. u-popup组件尽量与整个的第二层位置,否则会失效

2.常用属性值:

        show【控制弹出窗口的显示与隐藏】
                类型:Boolean
                默认值:false
                。当为 true 时,弹出窗口将显示;当为 false 时,弹出窗口将隐藏。

        position 【设置弹出窗口的位置。可选值】
                类型:String
                默认值:center

                top: 弹出窗口在顶部显示。
               bottom: 弹出窗口在底部显示。
                left: 弹出窗口在左侧显示。
               right: 弹出窗口在右侧显示。
               center: 弹出窗口在屏幕中央显示。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/784274
推荐阅读
相关标签
  

闽ICP备14008679号