微信小程序学习笔记(4)

写在前面:

本文仅用于记录自己的学习经过和转载一些资料

本文所有练习和实例均使用vscode和微信官方的微信开发者工具共同完成,vscode仅用于编译代码。某些功能如即时模拟,实际上要使用微信官方工具才得以实现。

要达成代码同步,仅需要使用vscode和微信工具同时打开一个项目即可。


五、样式WXSS

目录

五、样式WXSS

一、新的单位和样式导入。

        1、响应式长度单位

        2、样式导入

        3、选择器

二、常用的组件

        1、图片(image)

        2、轮播图(swiper)

        3、跳转组件(navigator)

        4、富文本(Rich-text)

        5、按钮(button)

        6、icon

        7、radio/checkbox


        类似前端中的CSS,但支持响应式长度单位(rpx)。

一、新的单位和样式导入。

1、响应式长度单位

        小程序不需要写link标签来链接页面,可以自动寻找同名文件。

        rpx全称responsiv pixel,相对像素,规定屏幕宽为750rpx。和物理像素比例会产生相应变化。rpx和px的比例有公式有:设一个设计稿,内含有一元素,

(元素 px)= (750 rpx)*(元素px)/(设计稿 px)

        故当在设计元素的属性时,可以用属性calc来快速计算,举例:

#firstword{
    height: 200rpx;
    font-size: 40rpx;
    background-color: gold;
    width: calc(750px * 100 / 375);
    //iPhone6的屏幕宽为375px,设该元素的宽为100px
}

2、样式导入

        wxss支持直接导入样式,关键字@import,仅支持相对路径

@import "../../styles/common.wxss"

3、选择器

        wxss不支持通配符*

选择器举例描述
.class.intro选择所有拥有 class="intro" 的组件
#id#firstname选择拥有 id="firstname" 的组件
elementview选择所有 view 组件
element,elementview,checkbox选择所有文档的 view 组件和所有的 checkbox 组件
::afterview::after在 view 组件后边插入内容
::beforeview::before在 view 组件前边插入内容

二、常用的组件

        一些和web类似的组件,例如view和text等可以看这里快速进行查漏补缺。

1、图片(image)

        1)、支持懒加载。

        2)、图片加载有默认上限而且很小(2m),故一般需要图片时直接放在外网调用。

        3)、图片默认的尺寸为宽度320px、高度为240px。

        4)、关于图片的拉伸属性(mode),可以在官方文档进行查看。可以实现让图片以各种状态(截取宽或高,保持比例、不保持比例拉伸等)进行变换。

2、轮播图(swiper)

        关键字swiperswiper-item

        <swiper>里只能放入<swiper-item>,否则会报错。关键字可以查看这里,可自定义内容有纵/横向滑动,滑动动画等。

        *在开发时我遇到了img无法加载的问题,初步判断是因为抓取图片的速度没有跟上小程序初始渲染的速度,暂时留存问题,待后续更改。   实际上是微信小程序自身的bug,不支持某种格式的图片。

控制台报错 

3、跳转组件(navigator)

        关键字navigator,用于创建跳转块。

<navigator url="/pages/demo02/demo02">点击跳转</navigator>

        属性看这里。一般抓url+相对地址进行跳转。

        *在默认情况下不能跳转至绑定了tabbar的页面。可以在open-type属性设置switchTab。

跳转组件

跳转后的页面会有返回按钮

4、富文本(Rich-text)

        关键属性nodes,多用于前端开放端口给后端,获取完整的divstyle。两种用法:

        举例1:

const thingstyle =
`<div class="div_class">
  <h1>Title</h1>
  <p class="p">
    Life is&nbsp;<i>like</i>&nbsp;a box of
    <b>&nbsp;chocolates</b>.
  </p>
</div>
`
Page({
    data: {
        thingstyle
    }
})

js文件:通过创建对象来引入wxml初始数据

<rich-text nodes="{{thingstyle}}"></rich-text>

  wxml

        

 展示

        举例2:

page({
  data: {
    nodes: [{
      name: 'div',
      attrs: {
        class: 'div_class',
        style: 'line-height: 60px; color: #1AAD19;'
      },
      children: [{
        type: 'text',
        text: 'You never know what you\'re gonna get.'
      }]
    }]
  }
})

直接在page初始数据这里写入,但是不直观,尽量不用

        官方文档

5、按钮(button)

        1)样式

        关于样式,直接查看官方文档,或者自己在wxss里写,很简单。

        当前小程序用的是新版组件V2,想自己调整button的大小可以在json文件里将"style": "v2"删除或改成v1,回退组件版本。

        *小程序提供了一个有loading样式的图标,挺好看的:

         2)开放能力

        小程序的几个开放功能都是封装好的:

合法值说明
contact打开客服对话,可以在后台设置客服
share转发(给朋友,不能转发至朋友圈)
*getPhoneNumber获取手机号,但需非个人用企业微信号且完成认证,且需要绑定事件bindgetphonenumber回调来获取手机号。
*getUserInfo这个值原先用于获取用户信息,但在2021.4.28后被官方回收了,现在只能获取到匿名信息。
*launchApp跳转app,但是一个类似返回的功能,需要先从app跳转到小程序再从小程序跳回app。
openSetting查看自己的授权,可以取消授权。
feedback意见反馈。
chooseAvatar获取用户头像,可以从bindchooseavatar回调中获取到头像信息。

        *关于getUserInfo这个值,于小程序三次回收迭代后(真闲),于今(2022.3.28)改用​​​​​​getUserProfile()方法来执行获取用户信息,举例:

page({
    getUserProfile() {
        wx.getUserProfile({
            desc: "登录",
            //请求拉取用户数据时显示的内容
            success: (res) => {
                console.log(res);
            },
            //拉取成功
            fail: (res) => {
                console.log(res);
            },
            //拉取失败
        });
    }
})

        关于getUserProfile()的五个属性:

属性必填用处
lang

显示用户使用的语言。只支持英简繁。
desc声明获取用户个人信息后的用途,不超过30个字符。
success接口调用成功的回调函数。
fail接口调用失败的回调函数。
complete接口调用完成后的回调函数。

6、icon

        小程序内置封装了一些图标,可以直接用<icon>的标签形式写出来,具体配置可查看官方文档,没啥用。

7、radio/checkbox

        两个选择框的用法都类似,需要用radio-group/checkbox-group父元素包裹组件,并且可以自定义选中/未选中的图标属性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值