小程序:uniapp 第三弹(样式,组件,图片)

小程序:uniapp 第三弹(样式,组件,图片)

样式
  1. 单位:rpx,750为基础
  2. 不能使用 * 选择器
  3. page相当于body节点
  4. 局部样式会覆盖全局样式
  5. uni.scss | uni.less 中定义的变量可以在组件用使用
  6. 使用iconfont
    • 路径需改为:~@/static/对应文件夹
组件: 地址
  • 1.view

    • 视图容器
    • 类似于传统html中的div,用于包裹各种元素内容
    • 属性
      • hover-class:string | 指定按下去的样式类。hover-class=“none” ,没有点击态效果
      • hover-stop-propagation: boolean | 指定是否阻止本节点的祖先节点出现点击态
      • hover-start-time: number | 按住后多久出现点击态,单位毫秒
      • hover-stay-time: number | 手指松开后点击态保留时间,单位毫秒
  • 2. text

    • 文本组件,用于包裹文本内容 | 支持 \n 方式换行

    • 组件内只支持嵌套 | 用 组件编译时会被转换为

    • 除了文本节点以外的其他节点都无法长按选中

    • 属性

      • selectable: boolean | 文本是否可选
      • decode: boolean | 是否解码
        • 可以解析的有:   | < | > | & | ' |   |  
      • space: string | 显示连续空格
        • ensp 中文字符空格一半大小
        • emsp 中文字符空格大小
        • nbsp 根据字体设置的空格大小
  • 3. button

    • 常用属性
      • size:按钮的大小

      • type:按钮的样式类型 | primary ,default,warn

      • plain:按钮是否镂空,背景色透明

      • disabled:是否禁用

      • loading:名称前是否带 loading 图标

      • hover-class:string | 指定按钮按下去的样式类。hover-class=“none” ,没有点击态效果

      • hover-stop-propagation: boolean | 指定是否阻止本节点的祖先节点出现点击态

      • hover-start-time: number | 按住后多久出现点击态,单位毫秒

      • hover-stay-time: number | 手指松开后点击态保留时间,单位毫秒

      • form-type:submit 提交表单 | reset 重置表单

      • open-type

        • @error:当使用开放能力时,发生错误的回调 | open-type=“launchApp”
        • @getuserinfo: 用户点击该按钮时,会返回获取到的用户信息,从返回参数的detail中获取到的值同uni.getUserInfo
        • @getphonenumber:获取用户手机号回调
        • @opensetting:在打开授权设置页并关闭后回调
        • @launchapp:打开 APP 成功的回调
  • 4. image
    原图

    • 常用属性
      • src: string | 图片资源地址

      • mode: string | 图片裁剪、缩放的模式

        • 缩放

          • scaleToFill:不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
            scaleToFill
          • aspectFit: 保持纵横比缩放图片,使图片的长边能完全显示出来
            aspectFit
          • aspectFill: 保持纵横比缩放图片,只保证图片的短边能完全显示出来
            aspectFill
          • widthFix: 宽度不变,高度自动变化,保持原图宽高比不变
            widthFix
          • heightFix: 高度不变,宽度自动变化,保持原图宽高比不变
            heightFix
        • 裁剪

          • top | bottom | left | right
          • center
            center
          • top left: 显示图片的左上边区域
            top left
          • top right: 显示图片的右上边区域
          • bottom left: 显示图片的左下边区域
          • bottom right: 显示图片的右下边区域
            bottom right
      • lazy-load: 图片懒加载。只针对page与scroll-view下的image有效

      • fade-show: 图片显示动画效果

      • @error

        • 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: ‘something wrong’}
      • @load

        • 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:‘图片高度px’, width:‘图片宽度px’}
### 如何在 UniApp 小程序中实现间选择器 #### 间选择器概述 为了满足不同场景下的需求,UniApp 提供了多种方式来创建间选择器。这些解决方案不仅适用于小程序环境,还能够跨平台运行于H5网页、安卓和iOS应用等多个终端。 #### 方案一:基于内置组件 `picker-view` ##### 组件集成 利用 `picker-view` 和扩展组件 `Popup` 来构建自定义的间选择器可以提供良好的用户体验并保持界面简洁美观[^1]。此方案适合那些希望快速搭建基础版本的应用开发者们。 ```html <template> <view class="container"> <!-- 显示当前选定的日期 --> <text>{{ currentDate }}</text> <!-- 触发出层按钮 --> <button @click="toggleDatePicker">选择日期</button> <!-- 出层容器 --> <popup v-model="showPicker" position="bottom"> <picker-view :value="selectedValue" @change="bindChange"> <picker-view-column> <div v-for="(year, index) in years" :key="index">{{ year }}年</div> </picker-view-column> <picker-view-column> <div v-for="(month, index) in months" :key="index">{{ month + 1 }}月</div> </picker-view-column> <picker-view-column> <div v-for="(day, index) in days" :key="index">{{ day }}日</div> </picker-view-column> </picker-view> </popup> </view> </template> <script lang="ts"> import { ref } from 'vue'; export default { setup() { const showPicker = ref(false); let selectedValue = ref([0, 0, 0]); // 初始化数据... function toggleDatePicker() { showPicker.value = !showPicker.value; } function bindChange(e: any) { console.log('changed:', e.detail.value); selectedValue.value = e.detail.value; } return { showPicker, toggleDatePicker, bindChange, // ...其他属性 }; }, }; </script> ``` #### 方案二:使用第三方库或插件 对于更复杂的需求,则可以通过引入专门设计好的插件如 tkiTree 或者直接采用官方推荐的日历/间段选择控件][^[^34]。这类工具通常已经过充分测试,在性能表现方面也更为出色;同它们往往具备更多高级特性比如联动筛选、区间限定等,有助于提升产品的竞争力和服务质量。 #### 注意事项 当涉及到样式调整需要注意某些特定属性可能会影响最终呈现效果,例如背景颜色设置不当可能会破坏视觉一致性。另外还需留意各平台上可能存在差异化的API调用逻辑以及事件响应机制等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值