viewclass="account">viewclass="title">账号viewclass="title">密码。">
赞
踩
二、实验步骤与结果(给出对应的代码或运行结果截图)
index.wxml
<view class="content">
<view class="account">
<view class="title">账号</view>
<view class="num"><input bindinput="accountInput" placeholder="用户名/邮箱/手机号" placeholder-style="color:#999999;"/></view>
<view class="hr"></view>
</view>
<view class="account">
<view class="title">密码</view>
<view class="num"><input bindblur="pwdBlur" placeholder="请输入密码" password placeholder-style="color:#999999;"/></view>
<view class="see">
<image src="/images/see.jpg" style="width:42px;height:30px;"></image>
</view>
</view>
<view class="hr"></view>
<button class="btn" disabled="{{disabled}}" type="{{btnstate}}" bindtap="login">登录</button>
<view class="operate">
<view><navigator url="../mobile/mobile">手机快速注册</navigator></view>
<view><navigator url="../company/company">企业用户注册</navigator></view>
<view>找回密码</view>
</view>
</view>
index.wxss
.content{
margin-top: 40px;/* 设置内容区顶部外边距为40px,用于与上方元素的间隔 */
}
.account{
display: block;/* 设置.account类的元素为块级元素,这意味着它会占据一整行 */
padding-left: 20px;/* 设置.account类元素的左内边距为20px */
padding-top: 20px;/* 设置.account类元素的顶部内边距为20px */
padding-bottom: 10px; /* 设置.account类元素的底部内边距为10px */
width: 90%;/* 设置.account类元素的宽度为其父容器宽度的90% */
}
.title{
float: left;/* 将.title类的元素向左浮动,使其在水平方向上靠左排列 */
margin-right: 30px; /* 设置.title类元素右侧的外边距为30px,用于与右侧元素的间隔 */
font-weight: bold ;/* 设置.title类的文本为粗体 */
}
.hr{
border: 1px solid #cccccc;/* 设置.hr类的边框为1px宽,实线,颜色为#cccccc */
opacity: 0.2;/* 设置.hr类的不透明度为0.2,使边框显得更为透明 */
width: 90%; /* 设置.hr类元素的宽度为其父容器宽度的90% */
margin: auto;/* 设置.hr类元素的上下外边距为0,左右外边距自动,从而使其水平居中 */
}
.see{
position: absolute; /* 设置.see类的定位为绝对定位,它将相对于最近的定位非static元素进行定位 */
margin-right: 20px;/* 设置.see类元素相对于其父元素右侧的距离为20px */
}
.btn{
width: 90%; /* 设置.btn类的按钮宽度为其父容器宽度的90% */
margin-top: 40px; /* 设置.btn类的按钮顶部外边距为40px,用于与上方元素的间隔 */
color: #999999;/* 设置.btn类的按钮文本颜色为#999999,这是一种灰色调 */
}
.operate{
display: block; /* 设置.operate类的元素为块级元素,这意味着它会占据一整行 */
}
.operate view{
display: inline-block;/* 设置.operate类中的view元素为内联块级元素,允许它们在一行内并排显示 */
width: 33%;/* 设置每个view元素的宽度为其父容器宽度的33%,允许三个元素平分一行 */
text-align: center;/* 设置文本在每个view元素内居中对齐 */
margin-top: 40px;/* 设置每个view元素顶部的外边距为40px,用于与上方元素的间隔 */
font-family: 14px;/* 设置字体大小为14px,适合阅读而不显得过大或过小 */
color: #333333; /* 设置文本颜色为深灰色(#333333),提供良好的可读性 */
}
.login{
display: block; /* 设置.login类的元素为块级元素,这意味着它会占据一整行 */
margin-top: 150px;/* 设置.login类元素顶部外边距为150px,用于与上方元素的显著间隔 */
text-align: center;/* 设置.login类的文本在元素内居中对齐 */
}
.login view{
display: inline-block/* 设置.login类中的view元素为内联块级元素,允许它们在一行内并排显示 */
}
index.js
Page({
data: {
disabled: true, // 初始化登录按钮为禁用状态
btnstate: "default", // 设置按钮的初始样式为默认
account: "", // 初始化账户数据为空
password: "" // 初始化密码数据为空
},
//判断输入框里是否有字,有内容则按更改按钮样式
accountInput(e) {
var content=e.detail.value;
// 获取输入框内的值
console.log(content);
// 在控制台输出当前输入的内容
if (content != '') {
this.setData({disabled:false,btnstate:"primary",account:content});// 如果输入不为空,设置按钮为启用状态,更改按钮样式为"primary",并更新账户数据
} else {
this.setData({disabled:true,btnstate:"default"});// 如果输入为空,重置按钮为禁用状态和默认样式
}
},
//失去焦点后获取密码框的值,进行更新
pwdBlur(e) {
var password =e.detail.value;// 获取密码输入框内的值
if (password != '') {
this.setData({password:password});// 如果密码输入不为空,更新密码数据
}
},
//模拟登录成功界面
login(){
console.log("账号:"+this.data.account)//将登陆成功后的账号输出至控制台
console.log("密码:"+this.data.password)//将登陆成功后的密码输出至控制台
wx.showToast({
title: '完成登录', //可视化
})
}
})
1.WXML
1.1 定义登录表单视图
页面的主体内容被一个名为“content”的view组件包含,作为容器包括所有子组件,包括账号输入框、密码输入框以及登录按钮。
<view class="content">
1.2 添加账号输入部分
在“content”视图内,首先添加了一个“account”类的view组件,用于用户输入账号信息:
标题:包含一个静态文本“账号”,显示在输入框的左侧。
输入框:使用input组件,提供了输入反馈的绑定事件bindinput="accountInput",并设置了灰色的占位文字。<view class="account">
<view class="title">账号</view>
<view class="num"><input bindinput="accountInput" placeholder="用户名/邮箱/手机号" placeholder-style="color:#999999;"/></view>
</view>
1.3 添加分割线
在账号输入框下方添加了一个名为“hr”的view组件,用作视觉上的分割线,增强布局的分区效果。
<view class="hr"></view>
1.4 添加密码输入部分
紧接着,为密码输入设置了一个与账号输入类似的布局:
标题:同样包含一个静态文本“密码”。
输入框:input组件用于密码输入,绑定了失焦事件bindblur="pwdBlur",并设置密码隐藏。
查看密码:通过一个image组件实现,点击后可以查看或隐藏密码。
<view class="account">
<view class="title">密码</view>
<view class="num"><input bindblur="pwdBlur" placeholder="请输入密码" password placeholder-style="color:#999999;"/></view>
<view class="see">
<image src="/images/see.jpg" style="width:42px;height:30px;"></image>
</view>
</view>
1.5 再次添加分割线
为了在视觉上区分密码输入和后续的操作按钮,再次插入一个“hr”类的分割线。
<view class="hr"></view>
1.6 添加登录按钮
在表单下方提供了一个登录按钮,其可用状态和类型通过数据绑定实现,响应用户点击事件bindtap="login"。
<button class="btn" disabled="{{disabled}}" type="{{btnstate}}" bindtap="login">登录</button>
1.7 设置附加操作链接
最后,在登录表单下方设置了一个“operate”类的view组件,包含三个视图,每个视图都使用navigator组件,分别指向手机快速注册、企业用户注册和找回密码的页面。
<view class="operate">
<view><navigator url="../mobile/mobile">手机快速注册</navigator></view>
<view><navigator url="../company/company">企业用户注册</navigator></view>
<view>找回密码</view>
</view>
2.WXSS
.content{
/* 设置内容区顶部外边距为40px,用于与上方元素的间隔 */
}
.account{
/* 设置.account类的元素为块级元素,这意味着它会占据一整行 */
/* 设置.account类元素的左内边距为20px */
/* 设置.account类元素的顶部内边距为20px */
/* 设置.account类元素的底部内边距为10px */
/* 设置.account类元素的宽度为其父容器宽度的90% */
}
.title{
/* 将.title类的元素向左浮动,使其在水平方向上靠左排列 */
/* 设置.title类元素右侧的外边距为30px,用于与右侧元素的间隔 */
/* 设置.title类的文本为粗体 */
}
.hr{
/* 设置.hr类的边框为1px宽,实线,颜色为#cccccc */
/* 设置.hr类的不透明度为0.2,使边框显得更为透明 */
/* 设置.hr类元素的宽度为其父容器宽度的90% */
/* 设置.hr类元素的上下外边距为0,左右外边距自动,从而使其水平居中 */
}
.see{
/* 设置.see类的定位为绝对定位,它将相对于最近的定位非static元素进行定位 */
/* 设置.see类元素相对于其父元素右侧的距离为20px */
}
.btn{
/* 设置.btn类的按钮宽度为其父容器宽度的90% */
/* 设置.btn类的按钮顶部外边距为40px,用于与上方元素的间隔 */
/* 设置.btn类的按钮文本颜色为#999999,这是一种灰色调 */
}
.operate{
/* 设置.operate类的元素为块级元素,这意味着它会占据一整行 */
}
.operate view{
/* 设置.operate类中的view元素为内联块级元素,允许它们在一行内并排显示 */
/* 设置每个view元素的宽度为其父容器宽度的33%,允许三个元素平分一行 */
/* 设置文本在每个view元素内居中对齐 */
/* 设置每个view元素顶部的外边距为40px,用于与上方元素的间隔 */
/* 设置字体大小为14px,适合阅读而不显得过大或过小 */
/* 设置文本颜色为深灰色(#333333),提供良好的可读性 */
}
.login{
/* 设置.login类的元素为块级元素,这意味着它会占据一整行 */
/* 设置.login类元素顶部外边距为150px,用于与上方元素的显著间隔 */
/* 设置.login类的文本在元素内居中对齐 */
}
.login view{
/* 设置.login类中的view元素为内联块级元素,允许它们在一行内并排显示 */
}
3.JS
Page({
data: {
disabled: true, // 初始化登录按钮为禁用状态
btnstate: "default", // 设置按钮的初始样式为默认
account: "", // 初始化账户数据为空
password: "" // 初始化密码数据为空
},
//判断输入框里是否有字,有内容则按更改按钮样式
accountInput(e) {
// 获取输入框内的值
// 在控制台输出当前输入的内容
if (content != '') {
// 如果输入不为空,设置按钮为启用状态,更改按钮样式为"primary",并更新账户数据
} else {
// 如果输入为空,重置按钮为禁用状态和默认样式
}
},
//失去焦点后获取密码框的值,进行更新
pwdBlur(e) {
// 获取密码输入框内的值
if (password != '') {
// 如果密码输入不为空,更新密码数据
}
},
//模拟登录成功界面
login(){
//将登陆成功后的账号输出至控制台
//将登陆成功后的密码输出至控制台
wx.showToast({
title: '完成登录', //可视化
})
}
})
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。