当前位置: 首页 > news >正文

微信小程序开发教学系列(3)- 页面设计与布局

3. 页面设计与布局

在微信小程序开发中,页面的设计和布局是非常重要的。一个好的页面设计可以提升用户体验,并使小程序更加吸引人。本章节将介绍如何设计和布局微信小程序的页面。

3.1 页面结构和样式的创建和设置

在创建微信小程序页面时,需要先定义页面的结构和样式。可以通过以下步骤来创建并设置页面的结构和样式:

  1. 在小程序项目的pages/目录下创建一个新的页面文件,命名为page1(命名可以根据自己的需求进行修改)。

  2. page1文件中,使用<view>组件定义页面的结构。例如,可以创建一个简单的页面结构如下:

    <view class="container"><view class="title">欢迎来到小程序</view><view class="content">这是一个简单的页面示例</view>
    </view>
    
  3. 在微信小程序的app.wxss文件中,定义页面的样式。例如,可以设置标题文本的样式如下:

    .title {font-size: 24px;color: #333;padding: 20px 0;
    }
    
  4. 在小程序的app.json文件中,配置页面的路径和样式文件路径。例如,在app.json文件中,添加以下代码:

{"pages": ["pages/page1/page1"],"style": {"navigationBarTitleText": "微信小程序","navigationBarBackgroundColor": "#fff","navigationBarTextStyle": "black"}
}

以上代码中,我们将pages/page1/page1添加到pages数组中,表示该页面的路径。同时,我们还可以设置顶部导航栏的样式,如标题文本、背景色和文字颜色等。

3.2 页面跳转与传参

在微信小程序中,页面之间的跳转是常见的操作。可以通过以下方法实现页面之间的跳转并传递参数:

  1. 使用navigator组件进行页面跳转。例如,可以在页面的某个按钮上添加点击事件,点击按钮后跳转到另一个页面:

    <button bindtap="gotoPage2">跳转到页面2</button>
    

    在页面的js文件中,定义跳转函数并传递参数:

    Page({gotoPage2: function() {wx.navigateTo({url: '/pages/page2/page2?id=123&name=小明',})}
    })
    

    上述代码中,使用wx.navigateTo方法跳转到pages/page2/page2页面,并通过url传递参数id=123name=小明

  2. 在目标页面中,接收传递的参数。在目标页面的onLoad函数中,可以通过options参数获取传递的参数值:

Page({onLoad: function(options) {console.log(options.id); // 输出:123console.log(options.name); // 输出:小明}
})

上述代码中,通过options参数获取传递的参数值,并进行相应的处理。

除了使用wx.navigateTo进行页面跳转,还可以使用wx.redirectTo进行页面重定向,或者使用wx.switchTab进行Tab页切换等方式实现页面跳转。

3.3 常用布局方式和技巧

在微信小程序的页面布局中,常用的布局方式和技巧有很多,下面列举几个常见的示例:

  1. 使用<view>组件嵌套实现垂直布局。例如,可以利用flex布局实现页面的上中下布局:

    <view class="container"><view class="header">顶部内容</view><view class="content">中间内容</view><view class="footer">底部内容</view>
    </view>
    

    在相应的样式文件中,设置布局的样式:

.container {display: flex;flex-direction: column;justify-content: space-between;height: 100vh;
}
.header,content, .footer {
padding: 20px;
}
.header {background-color: #f0f0f0;
}
.content {flex: 1;background-color: #fff;
}
.footer {background-color: #f0f0f0;
}

以上代码中,通过设置display: flexflex-direction: column实现垂直布局,利用justify-content: space-between设置头部和底部内容的间距,使用flex: 1将中间内容撑满剩余空间。

  1. 使用<view><scroll-view>组件实现滚动布局。当页面内容超出可视区域时,可以使用<scroll-view>组件实现滚动效果。示例如下:

    <view class="container"><scroll-view class="content" scroll-y><view class="item" wx:for="{{list}}">{{item}}</view></scroll-view>
    </view>
    

    在相应的样式文件中,设置滚动布局的样式:

    .container {height: 100vh;
    }
    .content {height: 100%;
    }
    .item {padding: 20px;border-bottom: 1px solid #f0f0f0;
    }
    

    以上代码中,设置容器高度为视口高度,通过scroll-y属性实现纵向滚动,使用wx:for指令遍历数据并渲染多个子项。

  2. 使用<swiper>组件实现轮播图效果。示例如下:

<swiper indicator-dots autoplay interval="{{3000}}"><block wx:for="{{images}}"><swiper-item><image src="{{item}}" mode="aspectFit"></image></swiper-item></block>
</swiper>

在相应的样式文件中,可以设置轮播图的样式:

swiper {height: 200px;
}image {width: 100%;height: 100%;
}

以上代码中,通过<swiper><swiper-item>组件实现轮播图的结构,使用wx:for指令遍历数据并渲染多个子项。设置indicator-dots属性为true,使轮播图显示指示点;设置autoplay属性为true,使轮播图自动播放;设置interval属性为3000,表示轮播间隔为3秒。

注意:为了实现轮播图的高度自适应,可以通过设置swiper组件的高度和image组件的宽度和高度来实现。

通过合理的页面结构和样式的创建和设置,以及灵活运用页面跳转、传参等技巧,可以构建出更加优秀的微信小程序页面。

相关文章:

微信小程序开发教学系列(3)- 页面设计与布局

3. 页面设计与布局 在微信小程序开发中&#xff0c;页面的设计和布局是非常重要的。一个好的页面设计可以提升用户体验&#xff0c;并使小程序更加吸引人。本章节将介绍如何设计和布局微信小程序的页面。 3.1 页面结构和样式的创建和设置 在创建微信小程序页面时&#xff0c…...

基于JSP+Servlet+mysql员工权限管理系统

基于JSPServletmysql员工权限管理系统 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型&#xff1a;Java web项目 项目名称&#xff1a;基于JSPServlet的员工权限管理系统[qxxt] 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 …...

Qt 自定义提示框 右下角冒泡

网页右下角上经常会出现一些提示性的信息&#xff0c;B/S有的东西&#xff0c;C/S当然也可以有&#xff0c;就像QQ的消息提示一样&#xff01; 实现一个类似的东西并不困难&#xff0c;只要想明白原理实现起来就很简单了&#xff01; 实现原理&#xff1a; &#xff08;1&#…...

js、PHP连接外卖小票机打印机方案(调用佳博、芯烨等)

前言&#xff1a; 目前开发需要用到电脑直接连接外卖小票机打印小票&#xff0c;查阅各种资料&#xff0c;使用 6612345浏览器 终于解决了这个问题。 效果&#xff1a; PHP、js直接连接小票机并且自动出票。 支持的小票机&#xff1a; 目前测试可以的有&#xff1a;电脑A4打印…...

window定时备份MySQL数据库,默认备份7天,一小时备份一次

echo off setlocalrem 在Windows中添加任务计划以执行批处理脚本&#xff0c;请按照以下步骤操作&#xff1a;rem 打开Windows的“任务计划程序”应用程序。你可以通过按下Win R键&#xff0c;在运行对话框中输入taskschd.msc&#xff0c;然后按回车键来打开它。rem 在任务计划…...

正则中常见的流派及其特性

目前正则表达式主要有两大流派&#xff08;Flavor&#xff09;&#xff1a;POSIX 流派与 PCRE 流派。 1、 POSIX 流派 POSIX 规范定义了正则表达式的两种标准&#xff1a; BRE 标准&#xff08;Basic Regular Expression 基本正则表达式&#xff09;&#xff1b;ERE 标准&am…...

.net6.0引用的dll放置单独的文件夹

.net6.0 采用原有的设置方法不起作用 <?xml version"1.0" encoding"utf-8" ?> <configuration><startup> <supportedRuntime version"v4.0" sku".NETFramework,Versionv4.8" /></startup><runtim…...

CMake:检测外部库---自定义find模块

CMake:检测外部库---自定义find模块 导言项目结构CMakeLists.txt附录 导言 上一篇&#xff0c;我们了解了CMake其中一种自定义检测外部库的方式&#xff0c;本篇将展示通过编写一个find模块来定位系统上的ZeroMQ库&#xff0c;以便能够在非Unix操作系统上检测该库。 项目结构…...

vue直接使用高德api

第一步&#xff1a;在index.html 引入 <script src"https://webapi.amap.com/maps?v2.0&key你的key"></script>第二步&#xff1a;在你需要地图的时候 放入 <template><div style"width: 200px; height: 200px"><div id&q…...

Setting

目录 1 Setting 1.1.1 getChildList 1.1.2 getGroupList 1.1.3 setListener setOnChildClickListenermSettingList.setOnChildClickListener(new OnChildClickListener() {onChildClick...

时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测

时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测 目录 时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化…...

论文浅尝 | KRACL-利用图上下文和对比学习的稀疏KG补全

笔记整理&#xff1a;李娟&#xff0c;浙江大学博士&#xff0c;研究方向为知识图谱表示学习 论文链接&#xff1a;https://arxiv.org/pdf/2208.07622.pdf 代码链接&#xff1a;https://github.com/TamSiuhin/KRACL 介绍 知识图谱&#xff08;KG&#xff09;通常是不完整的&…...

【C++】右值引用,移动语义,完美转发

目录 右值引用移动语义拷贝构造与移动构造 万能引用与完美转发 右值引用 左值&#xff1a;可以出现在赋值符号的左边和右边&#xff0c;左值可以取地址。 右值&#xff1a;右值可以出现在赋值符号右边&#xff0c;不能出现在左边&#xff0c;右值不能取地址。 左值/右值引用就…...

【AI】即使AI 时代,程序员也无需焦虑

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…...

Django实现DRF数据API接口格式封装

通常在进行前后端分离开发的时候,前端Vue调用后端接口都需要一个状态信息以及数据结合起来的数据。 如果是没有经过加工的API接口访问的数据一般是这样的。 [{"id": 1, "type": "1", "start": "2023-08-24", "end&qu…...

[Go版]算法通关村第十三关白银——数字数学问题之数组实现加法、幂运算

目录 数组实现加法专题题目&#xff1a;数组实现整数加法思路分析&#xff1a;数组末尾开始&#xff0c;逐个元素1&#xff0c;10就进位&#xff0c;!10就退出复杂度&#xff1a;时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( n ) O(n) O(n)Go代码 题目&#xff1a;字符串加法…...

【 OpenGauss源码学习 —— 列存储(Insert)】

列存储&#xff08;Insert&#xff09; 概述相关函数ExecInsertRelationData 结构体FormData_pg_class 结构体HeapInsertCStore函数InsertArg 结构体CStoreInsert 类CStoreInsert::InitInsertArg函数heap_deform_tuple 函数bulkload_rows 结构体append_one_tuple 函数bulkload_…...

Android 13.0 framework中实现默认长按电源键弹出关机对话框功能

1.前言 在13.0的系统定制化开发中,在12.0的系统之前默认的都是长按电源键弹出关机对话框,而在13以后 就改成音量+电源键弹出对话框,由于使用不方便,所以就改成默认长按弹出关机对话框功能 2.framework中实现默认长按电源键弹出关机对话框功能的核心类 frameworks/base/s…...

微信小程序,封装身高体重选择器组件

wxml代码&#xff1a; // 微信小程序的插值语法不支持直接使用Math <wxs src"./ruler.wxs" module"math"></wxs> <view class"ruler-container"><scroll-view scroll-left"{{scrollLeft}}" enhanced"{{tru…...

深度学习调参技巧

写完代码—> 小数据上降loss无nan—> 大数据没爆卡速度可以—> 实验log完好可视化loss稳步下降—>回头看实验结果 写完代码后&#xff0c;不要只是在小数据上降loss无nan&#xff0c;还要检查一下模型的输出是否符合预期&#xff0c;比如是否有明显的偏差或者异常值…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...