从零开始一个uni-app入门todo小项目(附源码)

效果:

一、uni-app简介

在这里插入图片描述

二、用HBuilderX创建uni-app项目

三、页面搭建与样式编写

先看一下设计图:在这里插入图片描述

1、状态栏

(1)结构:在这里插入图片描述

(2)样式:为了保持代码简洁,我们新建一个css目录单独存放样式
在这里插入图片描述
添加类名:

<template>
	<view class="container">
		<!-- 状态栏 -->
		<view class="top-container">
			<view class="top">
				<!-- 状态栏左侧 -->
				<view>
					<text class="active-tab">全部</text>
					<text>1条</text>
				</view>
				<!-- 状态栏右侧 -->
				<view>
					<text>全部</text>
					<text>代办</text>
					<text>已完成</text>
				</view>
			</view>
		</view>
	</view>
</template>

编写样式:

.container{
   
		display: flex;
		flex-direction:column;
	}
	.top-container{
   
		position: fixed;/* 在滚动页面时,期望状态栏是固定不动的 */
    left: 0;
		top: 0;
		bottom: 0;
		width: 100%;
		background-color:#FFFFFF;
		height: 40px;
		box-shadow: -1px 1px 5px 0 rgba(0,0,0,0.1);
		z-index: 2;/* 状态栏应该始终显示在上层 */
	}		
	.top{
   
		font-size: 12px;
		margin: 10px 5px 8px;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
	}
	.active-tab{
   
		font-size: 14px;
		color: #279abf;
	}
text {
   
	margin: 0px 5px 0px 5px;
}

2、内容

先看一下要实现什么样的效果:
在这里插入图片描述
(1)构建页面添加类名:

<template>
	<view class="container">
		<!-- 状态栏 -->
		<view class="top-container">
			<view class="top">
				<!-- 状态栏左侧 -->
				<view>
					<text class="active-tab">全部</text>
					<text>1条</text>
				</view>
				<!-- 状态栏右侧 -->
				<view>
					<text>全部</text>
					<text>代办</text>
					<text>已完成</text>
				</view>
			</view>
		</view>
		<!-- 内容 -->
		<view class="content">
			<view class="content-list">
				<view class="content-list-check">
					<view class="check-box">
					</view>
				</view>
				<view class="content-list-text">
				</view>
			</view>
		</view>
	</view>
</template>

(2)样式:

.content{
   
		position: relative;
		padding-top: 50px;
		padding-bottom: 130px;
	}
	.content-list{
   
		position: relative;
		display: flex;
		flex-direction: row;
		padding: 15px;
		margin: 10px;
		border-radius: 10px;
		background: #cfebfd;
		font-size: 14px;
		box-shadow: -1px 1px 5px 1px rgba(0,0,0,0.1),-1px 2px 1px 0 rgb(255,255,255) inset;
		overflow: hidden;
	}
	.content-list::before{
   /*用添加伪元素的方式实现蓝色小竖条*/
		position: absolute
  • 13
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个简单的购物车底部示例,使用uni-app框架和flex布局实现: ```html <template> <view class="cart-bar"> <view class="check-all"> <checkbox v-model="isCheckAll" /> <text>全选</text> </view> <view class="total-price"> <text>总价:</text> <text class="price">{{ totalPrice }}</text> </view> <view class="submit-btn"> <button @click="submitOrder">提交订单</button> </view> </view> </template> <script> export default { data() { return { isCheckAll: false, // 是否全选 totalPrice: 0, // 总价 cartItems: [ { id: 1, name: '商品1', price: 10, count: 2, isChecked: false }, { id: 2, name: '商品2', price: 20, count: 1, isChecked: false }, { id: 3, name: '商品3', price: 30, count: 3, isChecked: false }, ], }; }, computed: { // 计算选中的商品价格总和 selectedItems() { return this.cartItems.filter(item => item.isChecked); }, totalPrice() { return this.selectedItems.reduce( (total, item) => total + item.price * item.count, 0 ); }, }, methods: { // 全选/取消全选 toggleCheckAll() { this.isCheckAll = !this.isCheckAll; this.cartItems.forEach(item => { item.isChecked = this.isCheckAll; }); }, // 选择/取消选择商品 toggleCheckItem(item) { item.isChecked = !item.isChecked; this.isCheckAll = this.cartItems.every(item => item.isChecked); }, // 提交订单 submitOrder() { // TODO: 提交订单逻辑 }, }, }; </script> <style lang="scss"> .cart-bar { display: flex; align-items: center; justify-content: space-between; height: 60rpx; padding: 10rpx; background-color: #fff; position: fixed; bottom: 0; left: 0; right: 0; z-index: 999; } .check-all { display: flex; align-items: center; } .total-price { display: flex; align-items: center; font-size: 28rpx; .price { color: #f00; margin-left: 10rpx; } } .submit-btn { button { width: 180rpx; height: 60rpx; border-radius: 30rpx; background-color: #f00; color: #fff; font-size: 28rpx; } } </style> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值