实验七 智能手机互联网程序设计(微信程序方向)实验报告

               

  • 请编写一个用户登录界面,提示输入账号和密码进行登录,要求在输入后登陆框显示为绿色;

   

二、实验步骤与结果(给出对应的代码或运行结果截图)

index.wxml

<view class="content">

  <view class="account">

    <view class="title">账号</view> 

    <view class="num"><input bindinput="accountInputplaceholder="用户名/邮箱/手机号placeholder-style="color:#999999;"/></view>

    <view class="hr"></view>

  </view>

  <view class="account">

    <view class="title">密码</view> 

    <view class="num"><input bindblur="pwdBlurplaceholder="请输入密码password placeholder-style="color:#999999;"/></view>

    <view class="see">

      <image src="/images/see.jpgstyle="width:42px;height:30px;"></image>

    </view>

  </view>

  <view class="hr"></view>

  <button class="btndisabled="{{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: '完成登录', //可视化
    })
  }
})


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/569136.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux——界面和用户

本篇文章所写的都是基于centos 7 64位&#xff08;通过虚拟机运行&#xff09;。 一、Linux的界面 Linux操作系统提供了多种用户界面&#xff0c;主要分为图形用户界面&#xff08;GUI&#xff09;和命令行界面&#xff08;CLI&#xff09;。 1、图形用户界面(GUI)&#xff…

2024 年选择安全运营中心 (SOC) 工具指南

安全运营中心 (SOC) 是对抗网络威胁的前线。他们使用各种安全控制措施来监控、检测和快速响应任何网络威胁。这些控制措施对于确保信息系统全天候安全至关重要。 大型组织中的现代 SOC 与各种安全供应商合作&#xff0c;处理 75 到 100 种不同的工具。让我们探讨一下您可能遇到…

vue【vuex状态管理】

1&#xff1a;vuex是什么&#xff1a; vuex是一个状态管理工具&#xff0c;状态就是指的数据&#xff0c;可以将数据存放到vuex中以供其他组件使用时进行调用 2&#xff1a;应用场景&#xff1a; ①&#xff1a;像用户登录客户端&#xff0c;这个用户的数据需要在多个组件中…

天锐绿盾 | 文件资料透明加解密系统

"天锐绿盾 | 文件资料透明加解密系统" 是一款专为企业及各类组织机构设计的数据安全防护软件。它以“透明加解密”为核心技术&#xff0c;旨在对用户的重要文件资料进行实时、无缝的加密保护&#xff0c;确保数据在存储、传输和使用过程中的安全性&#xff0c;防止敏…

javascript(第三篇)原型、原型链、继承问题,使用 es5、es6实现继承,一网打尽所有面试题

没错这是一道【去哪儿】的面试题目&#xff0c;手写一个 es5 的继承&#xff0c;我又没有回答上来&#xff0c;很惭愧&#xff0c;我就只知道 es5 中可以使用原型链实现继承&#xff0c;但是代码一行也写不出来。 关于 js 的继承&#xff0c;是在面试中除了【 this 指针、命名提…

一文速览Llama 3及其微调:如何通过paper-review数据集微调Llama3 8B

前言 4.19日凌晨正准备睡觉时&#xff0c;突然审稿项目组的文弱同学说&#xff1a;Meta发布Llama 3系列大语言模型了 一查&#xff0c;还真是 本文以大模型开发者的视角&#xff0c;基于Meta官方博客的介绍&#xff1a;Introducing Meta Llama 3: The most capable openly a…

基于FPGA轻松玩转AI

启动人工智能应用从来没有像现在这样容易&#xff01;受益于像Xilinx Zynq UltraScale MPSoC 这样的FPGA&#xff0c;AI现在也可以离线使用或在边缘部署、使用.可用于开发和部署用于实时推理的机器学习应用&#xff0c;因此将AI集成到应用中变得轻而易举。图像检测或分类、模式…

Android Studio查看viewtree

前言&#xff1a;之前开发过程一直看的是手机上开发者选项中的显示布局边界&#xff0c;开关状态需要手动来回切换&#xff0c;今天偶然在Android Studio中弄出了布局树觉得挺方便的。

国产FTP文件传输服务器需要具备哪些关键特性?

国产FTP文件传输服务器是指根据中国国内信息技术创新&#xff08;信创&#xff09;的要求和标准&#xff0c;自主研发的文件传输服务器软件。这类软件旨在替代传统的FTP服务器&#xff0c;以更好地适应国产化和信息安全的需要。国产FTP文件传输服务器通常需要具备以下要求&…

【嵌入式Linux】STM32P1开发环境搭建

要进行嵌入式Linux开发&#xff0c;需要在Windows、Linux和嵌入式Linux3个系统之间来回跑&#xff0c;需要使用多个软件工具。经过了4小时的安装&#xff08;包括下载时间&#xff09;&#xff0c;我怕以后会忘记&#xff0c;本着互利互助的原则&#xff0c;我打算把这些步骤详…

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测 目录 分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.RIME-BP霜冰优化BP神经网络多特征分类预测&#xff08;Matlab实现完整源码和数据&a…

WEB攻防-ASP中间件IIS 短文件名探针安全漏洞

IIS短文件名探针安全漏洞是一个与IIS&#xff08;Internet Information Services&#xff09;服务相关的安全问题。该漏洞主要是由于HTTP请求中使用了旧DOS 8.3名称约定&#xff08;SFN&#xff09;的代字符&#xff08;〜&#xff09;波浪号&#xff0c;这使得远程攻击者有可能…

用C语言做一个小游戏:贪吃蛇(初阶)

1.整体思路规划 首先设计贪吃蛇就要先设计出一个游戏初始的界面以及要让玩家知道相应的游戏规则&#xff0c;其次要设计出一个地图来限制贪吃蛇的运动范围&#xff0c;那么就要初始化一条蛇&#xff0c;以及一个食物和其他功能&#xff0c;比如加速减速、暂停、食物的分数以及总…

PYTHON用[邻接列表]及[邻接矩阵]来存储无向图

# 图可以根据边的性质进行分类&#xff1a;# 有向图&#xff08;Directed Graph&#xff09;&#xff1a;在有向图中&#xff0c;边是有方向性的&#xff0c;从一个节点指向另一个节点。这意味着从节点 A 到节点 B 的边与从节点 B 到节点 A 的边可以是不同的&#xff0c;或者根…

58岁第一代「晶女郎」激罕现身

90年代性感女神关秀媚在2006年拍完内地剧集《暴雨梨花》后更全面息影&#xff0c;而且更甚少现身于人前。日前曾志伟庆祝71岁生日&#xff0c;举行盛大慈善素宴广邀圈中好友&#xff0c;为寺庙重建工程筹募经费。女神关秀媚便罕有接受访问透露近况。 当天关秀媚将头发盘起&…

【大数据】LSM树,专为海量数据读写而生的数据结构

目录 1.什么是LSM树&#xff1f; 2.LSM树的落地实现 1.什么是LSM树&#xff1f; LSM树&#xff08;Log-Structured Merge Tree&#xff09;是一种专门针对大量写操作做了优化的数据存储结构&#xff0c;尤其适用于现代大规模数据处理系统&#xff0c;如NoSQL数据库&#xff…

【Java--数据结构】“从扑克到程序:深入探讨洗牌算法的原理与魅力“

前言 以下是学习Java顺序表的一个实例应用———简单的洗牌算法。 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 定义每张扑克牌的属性 生成一副扑克牌&#xff08;不包含大小王&#xff09; 洗牌方法 发牌方…

AI视频下载:零基础2小时学会开发 Chrome扩展程序

无论您是有抱负的Web开发人员、AI爱好者还是生产力黑客&#xff0c;本课程都提供了宝贵的见解和实践经验&#xff0c;帮助您利用AI和Chrome扩展的力量来简化Web自动化&#xff0c;改善各个行业和领域的用户体验&#xff0c;解锁AI驱动生产力的潜力&#xff01; 此课程面向以下…

如何计算加速开发的实际价值

投资回报率&#xff08;ROI&#xff09;已成为在企业中引进工具、方法或者策略时必须考虑的关键指标。 尽管如此&#xff0c;在某些情况下&#xff0c;ROI 很容易衡量&#xff0c;而在其他情况下&#xff0c;则往往只衡量结果——金钱。这种评估角度是有效且必要的&#xff0c…

K-means聚类算法:如何在杂乱无章的数据中找出规律?

什么是K-means聚类算法&#xff1f; 在编程的世界里&#xff0c;K-means聚类算法就像一位无私的指路人&#xff0c;它不需要我们给出明确的指示&#xff0c;只需要我们提供数据&#xff0c;它就能帮助我们找到数据的归属&#xff0c;找到数据的“家”。 K-means聚类算法的名字…