微信小程序 UI与容器组件总结

发布时间 - 2026-01-10 23:12:00    点击率:

微信小程序 UI与容器组件总结

    1.总结与概述

    2.容器组件

            2.1 组件容器(view)

            2.2 可滚动视图容器(scroll-view)

            2.3 滑块视图容器(swiper)

1.总结与概述

1.1 UI组件总结图

 1.2 概述

        小程序的UI组件也就是定义用户界面的一系列标签,类似于html标签。一个完整用户响应过程:事件触发——>UI组件接收到事件——>触发js函数响应事件——>更新UI

 2.容器组件

2.1 容器组件(view)

    (1)总结


    (2)例子

        效果图


        page.wxml

<view>
 <text class="row-view-title">水平布局:</text>
 <view class="flex-wrp-row">
  <view class="flex-item-red" hover="true" hover-class="hover-style"><text class="color-text">red</text></view>
  <view class="flex-item-green" hover="true" hover-class="hover-style"><text class="color-text">green</text></view>
  <view class="flex-item-blue" hover="true" hover-class="hover-style"><text class="color-text">blue</text></view>
 </view>
</view>
<view>
 <text class="column-view-title">垂直布局:</text>
 <view class="flex-wrp-column" >
  <view class="flex-item-red" hover="true" hover-class="hover-style"><text class="color-text" >red</text></view>
  <view class="flex-item-green" hover="true" hover-class="hover-style"><text class="color-text">green</text></view>
  <view class="flex-item-blue" hover="true" hover-class="hover-style"><text class="color-text">blue</text></view>
 </view>
</view>

        page.wxss

.flex-item-red{
 background-color: red;
 height: 200rpx;
 width: 200rpx;
 text-align: center;
 line-height: 200rpx;
}
.flex-item-green{
 background-color: green;
 height: 200rpx;
 width: 200rpx;
 text-align: center;
 line-height: 200rpx
}
.flex-item-blue{
 background-color: blue;
 height: 200rpx;
 width: 200rpx;
 text-align: center; 
 line-height: 200rpx 
}
.flex-wrp-row{
 flex-direction: row;
 display: flex;
 margin-left: 10rpx;
 margin-top: 20rpx;
}
.flex-wrp-column{
 flex-direction: column;
 display: flex;
 margin-left: 10rpx;
  margin-top: 20rpx;
}
.color-text{
 color: snow;
 font-family: 'Times New Roman', Times, serif;
 font-weight: bold;
}
.hover-style{
 background-color: black;
}
.row-view-title,.column-view-title{
 margin-left: 20rpx;
 font-family: 'Times New Roman', Times, serif;
 font-weight: bold;
}
/*重要属性:
 display: flex; //与display:box;是类似,是flexbox的最新语法格式,有更好的适配效果
 flex-direction: column; //表示子布局垂直布局
 flex-direction: row; //表示子布局为水平布局
*/

 2.2 可滚动视图容器(scroll-view)

    (1) 总结


     (2) 例子

       效果图:


     page.wxml

<view>
<text>水平滚动布局</text>
</view>
<view class="x-view">
 <scroll-view class="scroll-view-x" scroll-x="true" bindscrolltoupper="scrollXToUpper" bindscrolltolower="scrollXToLower" bindscroll="scroll" scroll-left="0" scroll-into-view="{{green}}">
  <view id="green" class="x_green"></view>
  <view id="red" class="x_red"></view>
  <view id="yellow" class="x_yellow"></view>
  <view id="blue" class="x_blue"></view>
 </scroll-view>
</view>
<view>
<text>垂直滚动布局</text>
</view>
<view class="y-view">
 <scroll-view class="scroll-view-y" scroll-y="true" bindscrolltoupper="scrollYToUpper" bindscrolltolower="scrollYToLower" bindscroll="scroll" scroll-top="0" scroll-into-view="{{green}}">
  <view id="green" class="y_green"></view>
  <view id="red" class="y_red"></view>
  <view id="yellow" class="y_yellow"></view>
  <view id="blue" class="y_blue"></view>
 </scroll-view>
</view>

    page.wxss

.x_green{
 background-color: green;
 width: 500rpx;
 height: 300rpx;
 display: inline-flex;
}
.x_red{
 background-color: red;
 width: 500rpx;
 height: 300rpx;
 display: inline-flex;
 
}
.x_blue{
 background-color: blue;
 width: 500rpx;
 height: 300rpx;
 display: inline-flex; 
}
.x_yellow{
 background-color: yellow;
 width: 500rpx;
 height: 300rpx; 
 display: inline-flex; 
}
.y_green{
 background-color: green;
 width: 100%;
 height: 300rpx;
}
.y_red{
 background-color: red;
 width: 100%;
 height: 300rpx;
}
.y_yellow{
 background-color: yellow;
 width: 100%;
 height: 300rpx;
}
.y_blue{
 background-color: blue;
 width: 100%;
 height: 300rpx;
}
.scroll-view-x{
 display: flex;
 white-space: nowrap;
 width: 100%;
 margin-bottom: 20px;
 margin-top: 10px; 
 height: 300rpx; 
}
.scroll-view-y{
 height: 400rpx;
}
/*重要属性:
 white-space: nowrap;//设置内部元素不换行显示,与display: inline-flex;属性联合使用才会有水平布局的效果
*/

    page.js

//index.js
//获取应用实例
var app = getApp()
//var color_index=['green','red','yellow','blue'];
Page({
 data:{
 toview:'red',
 },
/*滑动到左边触发*/
scrollXToUpper:function(){
 console.log('scrollXToUpper')
},
/*滑动到右边触发 */
scrollXToLower:function(){
 console.log('scrollXToLower')
},
/*滑动到顶部触发*/
scrollYToUpper:function(){
 console.log('scrollYToUpper')
},
/*滑动到左边触发 */
scrollYToLower:function(){
 console.log('scrollYToLower')
},
/*滑动触发 */
scroll:function(){
 console.log("scroll")
},
onLoad: function () {
 console.log('onLoad')
 var that = this
 },
})

2.3 滑块视图容器(swiper)

 (1)总结


(2)例子

    效果图:


     page.wxml

<swiper data-current="0" current="0" bindchange="itemChangeFunc" circular="true" indicator-dots="{{indicatorDots}}"
 autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
 <block wx:for="{{imgUrls}}" wx:key="swiperkeys">
  <swiper-item>
  <image src="{{item}}" class="slide-image" width="355" height="150"/>
  </swiper-item>
 </block>
</swiper>

  page.js

//game.js
Page({
 data: {
 imgUrls: [
  '/image/wechat.png',
  'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
  'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
  'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg'
 ],
 indicatorDots: true,
 autoplay: true,
 interval: 3000,
 duration: 1000,
 current:1,
 },
 
 durationChange: function(e) {
 this.setData({
  duration: e.detail.value
 })
 },
 durationChange: function(e) {
 this.setData({
  duration: e.detail.value
 })
 },
itemChangeFunc:function(e){
 // console.log(e.target.dataset.current)
 
 console.log(e.detail)
}
})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # UI与容器组件  # 小程序  # UI与容器组件详解  # 微信小程序 支付功能开发错误总结  # 微信小程序 常用工具类详解及实例  # 微信小程序 基础知识css样式media标签  # 微信小程序 http请求封装详解及实例代码  # 微信小程序 弹幕功能简单实例  # 微信小程序 详解页面跳转与返回并回传数据  # 微信小程序 this和that详解及简单实例  # 微信小程序 基础组件与导航组件详细介绍  # 微信小程序-获得用户输入内容  # 滑块  # 会有  # 希望能  # 谢谢大家  # 类似于  # 换行  # 应用实例  # 素不  # display  # left  # margin  # direction  # height  # background  # column  # wxss  # center  # line  # align  # rpx 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  桂林网站制作公司有哪些,桂林马拉松怎么报名?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  zabbix利用python脚本发送报警邮件的方法  百度浏览器如何管理插件 百度浏览器插件管理方法  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  JavaScript实现Fly Bird小游戏  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  活动邀请函制作网站有哪些,活动邀请函文案?  ,南京靠谱的征婚网站?  Laravel如何使用Livewire构建动态组件?(入门代码)  网站页面设计需要考虑到这些问题  网站制作壁纸教程视频,电脑壁纸网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  如何自定义建站之星模板颜色并下载新样式?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  原生JS实现图片轮播切换效果  详解Android中Activity的四大启动模式实验简述  如何在企业微信快速生成手机电脑官网?  如何用狗爹虚拟主机快速搭建网站?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  IOS倒计时设置UIButton标题title的抖动问题  如何在万网自助建站中设置域名及备案?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  C++时间戳转换成日期时间的步骤和示例代码  如何快速搭建自助建站会员专属系统?  Java遍历集合的三种方式  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  千库网官网入口推荐 千库网设计创意平台入口  如何用PHP工具快速搭建高效网站?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel怎么在Blade中安全地输出原始HTML内容  如何用VPS主机快速搭建个人网站?  如何确保西部建站助手FTP传输的安全性?  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  如何快速上传自定义模板至建站之星?  使用Dockerfile构建java web环境  EditPlus中的正则表达式 实战(2)