【愚公系列】《微信小程序与云开发从入门到实践》033-页面尺寸控制与自定义字体

举报
愚公搬代码 发表于 2024/12/29 11:45:42 2024/12/29
【摘要】 标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。博客内容.NET、...
标题 详情
作者简介 愚公搬代码
头衔 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
博客内容 .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎 👍点赞、✍评论、⭐收藏

🚀前言

随着移动互联网的迅猛发展,微信小程序因其便捷性和高效性,成为了众多企业和开发者的重要工具。在小程序的设计与开发过程中,页面的视觉效果和用户体验尤为关键,其中页面尺寸的控制和字体的自定义更是不可忽视的两个方面。

本篇文章将深入探讨微信小程序中页面尺寸控制与自定义字体的实现方法。我们将介绍如何通过灵活运用CSS和小程序提供的API来精确调整页面元素的尺寸,以适应不同设备和用户需求。同时,我们也将探讨如何在小程序中实现自定义字体,使你的应用在视觉上更加独特,提升整体的用户体验。

🚀一、页面尺寸控制与自定义字体

在PC上,可以使用一些接口来调整小程序的窗口尺寸。在微信开发者工具中,可以设置模拟器为PC类型,如图所示。
在这里插入图片描述

🔎1.调整小程序页面尺寸

🦋1.1 wx.setWindowSize 方法

☀️1.1.1 功能说明

wx.setWindowSize 方法用于设置 PC 上小程序的窗口尺寸。通过该方法可以直接设置窗口的宽度和高度。

☀️1.1.2 方法示例

wx.setWindowSize({
  height: 300, // 设置窗口高度
  width: 600,  // 设置窗口宽度
  success: () => {
    console.log("窗口尺寸设置成功");
  },
  fail: (error) => {
    console.log("窗口尺寸设置失败", error);
  }
});

☀️1.1.3 方法参数说明

  • height: 设置窗口的高度(单位为像素)。
  • width: 设置窗口的宽度(单位为像素)。
  • success: 成功回调,表示窗口尺寸设置成功。
  • fail: 失败回调,表示窗口尺寸设置失败。

☀️1.1.4 注意事项

  • 该方法已经被 标记为弃用,官方不再推荐使用此方法来设置小程序的窗口尺寸。
  • wx.setWindowSize 方法 不支持模拟器 中预览效果,因此只能在真实设备上生效。
  • 如果需要动态调整小程序的窗口尺寸,推荐使用 app.json 配置中的 resizable 选项。

🦋1.2 配置 resizable 选项

  • resizableapp.json 文件中的一个配置项,当该项设置为 true 时,表示允许用户在 PC 上调整小程序窗口的尺寸。

配置示例:

{
  "window": {
    "resizable": true
  }
}
  • resizable: true:允许用户调整窗口大小(PC 上有效)。

🦋1.3 监听窗口尺寸变化

☀️1.3.1 wx.onWindowResize 方法

如果需要监听窗口尺寸的变化,可以使用 wx.onWindowResize 方法来添加尺寸变化的监听器。

☀️1.3.2 方法示例

wx.onWindowResize(({windowWidth, windowHeight}) => {
  console.log("窗口宽度:", windowWidth, "窗口高度:", windowHeight);
});

☀️1.3.3 参数说明

  • windowWidth: 当前窗口的宽度(单位为像素)。
  • windowHeight: 当前窗口的高度(单位为像素)。

通过该方法可以在窗口尺寸变化时执行相关逻辑,进行响应式调整。


🦋1.4 移除窗口尺寸变化监听

当不再需要监听窗口尺寸变化时,可以使用 wx.offWindowResize 方法来移除之前添加的监听器。

☀️1.4.1 方法示例

wx.offWindowResize((result) => {
  console.log("窗口尺寸变化监听已移除", result);
});
  • 移除监听:当不再需要根据窗口尺寸变化进行操作时,使用此方法移除监听。

🔎2.在小程序中使用自定义字体

🦋2.1 引入自定义字体的必要性

在小程序中,默认情况下会使用系统的默认字体。若应用有特殊的需求(如游戏类应用),可能需要引入自定义字体以契合应用的风格。小程序允许使用 网络字体 来满足这一需求,但不支持直接引入本地字体文件。

🦋2.2 引入自定义字体

☀️2.2.1 使用 wx.loadFontFace 方法

小程序中可以通过 wx.loadFontFace 方法加载自定义字体。为了让字体在整个小程序中生效,通常需要在 app.jsonLaunch 方法中引入字体代码,使其全局生效。

☀️2.2.2 代码示例

app.js 中的 onLaunch 方法中引入字体:

wx.loadFontFace({
  global: true,  // 是否全局加载
  family: 'BitstreamVera Serif Bold',  // 字体名称
  source: 'url("https://sungd.github.io/Pacifico.ttf")',  // 字体资源的地址,支持 TTF 或 WOFF 格式
  success: (res) => {
    console.log("字体加载成功:", res);
  },
  fail: (error) => {
    console.log("字体加载失败:", error);
  }
});
  • global: true:表示字体是否在整个小程序中全局生效。
  • family:指定字体的名称。
  • source:指定字体文件的网络地址,支持 TTF 或 WOFF 格式。

☀️2.2.3 在页面中使用自定义字体

在小程序的页面文件(如 fontDemo.wxml)中,使用 font-family 样式来应用自定义字体。

<text style="font-family: 'Bitstream Vera Serif Bold';">使用的字体是: Bitstream Vera Serif Bold</text>

🦋2.3 wx.loadFontFace 方法的配置项

属性名 类型 描述
global 布尔值 设置字体是否全局生效,true 表示全局加载字体,false 或不设置表示仅在当前页面有效
family 字符串 设置自定义字体的名称。字体名称将作为 font-family 在 CSS 中使用
source 字符串 设置字体资源的 URL 地址,支持 TTF 或 WOFF 格式
success 函数 字体加载成功后的回调函数
fail 函数 字体加载失败后的回调函数
complete 函数 字体加载完成后的回调函数
style 字符串 设置字体的样式(如 normal, italic 等)
weight 字符串 设置字体的粗细(如 normal, bold 等)
variant 字符串 设置字体的变体(如 small-caps 等)
desc 对象 设置字体的描述字段,指定字体的使用范围(如 webviewnative

☀️2.3.1 属性说明

  • global:如果设置为 true,该字体会在整个小程序中生效。如果设置为 false 或不设置,只在当前页面有效。
  • family:这是必须指定的属性,代表字体的名称。这个名称应该与加载的字体文件中的字体名称一致。
  • source:字体的网络地址,支持 TTF 和 WOFF 格式。小程序只支持通过 URL 引入字体文件。
  • successfailcomplete:这三个回调函数分别用于处理字体加载成功、失败和完成时的回调。
  • style:可以设置字体样式,例如 normalitalic
  • weight:设置字体的粗细,可以选择 normalbold
  • variant:设置字体的显示变体,例如 small-caps 等。
  • desc:用于描述字体的字段,可以指定字体的使用范围,如 webviewnative

🦋2.4 示例项目:创建字体展示页面

在小程序的 pages/fontDemo 文件夹下创建一个页面,展示如何使用自定义字体。

☀️2.4.1 fontDemo.wxml 文件示例

<view>
  <text style="font-family: 'Bitstream Vera Serif Bold';">使用的字体是: Bitstream Vera Serif Bold</text>
</view>

☀️2.4.2 效果展示

  • 运行代码后,页面中的文本将使用自定义的 Bitstream Vera Serif Bold 字体显示。

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。