小程序开发定制Html购物车

目录

一.

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>登陆界面</title>
  6. <style type="text/css">
  7. html,body{
  8. height:100%;/*小程序开发定制高度为屏幕的百分之百*/
  9. margin: 0px;/*外间距*/
  10. }
  11. body{/*背景图片*/
  12. background: url(tupian/1.jpeg) center/cover;
  13. }
  14. form{/*表单·*/
  15. color: white;
  16. /*小程序开发定制将背景设置透明*/
  17. background: rgba(255,255,255,.1);
  18. position: absolute;
  19. padding: 0px 20px;
  20. left: 50%;
  21. top: 50%;
  22. /* 小程序开发定制在自己的基础上往右边和下面走-50% */
  23. transform: translate(-50%,-50%);
  24. border-radius: 10px;
  25. box-shadow: 6px 6px 10px black;
  26. }
  27. input{
  28. border: 1px solid gray;
  29. border-radius: 20px;
  30. height: 40px;
  31. width: 300px;
  32. }
  33. button{
  34. width: 80px;
  35. height: 40px;
  36. transform: translate(80%,20%);
  37. border: 1px solid black;
  38. border-radius: 20px;
  39. margin: 0px 20px;
  40. }
  41. input{
  42. background: rgba(255,255,255,.5);
  43. }
  44. a{
  45. text-decoration: none;
  46. }
  47. </style>
  48. </head>
  49. <body>
  50. <form action="" id="myJM" method="post">
  51. <h3>白马时光</h3>
  52. <p>昵称: <input type="text" id="userName" placeholder="输入3-6小程序开发定制个大写或小写字母")></p>
  53. <p>密码: <input type="password" id="userPwd" placeholder="小程序开发定制不能为标点或文字(长度在6-10)")></p>
  54. <p>
  55. <button type="button" onclick="fun01()" >登陆</button>
  56. <button type="button" onclick="fun02()" >注册</button>
  57. </p>
  58. <p>
  59. 忘记密码?<a>点击这里</a>
  60. </p>
  61. </form>
  62. <script>
  63. //登陆
  64. function fun01() {
  65. //小程序开发定制拿到输入框的值
  66. var f1=userName.value;
  67. var f2=userPwd.value;
  68. //正则
  69. var rexName=/^[a-zA-Z]{3,6}$/;
  70. var rexPwd=/^\w{6,10}$/;
  71. //正则匹配
  72. var b1=rexName.test(f1)
  73. var b2=rexPwd.test(f2)
  74. if(b1&&b2){
  75. location.href="11111.html"
  76. }else{
  77. if(userName.valu==""||userPwd.value==""){
  78. alert("小程序开发定制信息不能为空")
  79. return false;
  80. }
  81. alert("输入错误")
  82. return false;
  83. }
  84. }
  85. //注册
  86. function fun02(){
  87. location.href="zhuce.html"
  88. }
  89. </script>
  90. </body>
  91. </html>

 我的登陆界面用正则判断,昵称输入框的输入要求时3到6个大写或小写字母,placeholder时信息提示,它在输入框中显示,当你在输入框中输入值时,就会消失

 我写了非空判断,在没有输入值就点击登陆时,就会弹出提示框(alert)

 

在输入信息与消息提示不符时,也会 弹出提示框(alert)

二.注册界面

我写的注册界面不怎么全面没有运用二级联动,也没有输入电话号码。有需要的朋友还是去看看别的大佬的d=====( ̄▽ ̄*)b

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>登陆界面</title>
  6. <style type="text/css">
  7. html,body{
  8. height:100%;
  9. margin: 0px;
  10. }
  11. body{
  12. background: url(tupian/2.jpeg) center/cover;
  13. }
  14. form{
  15. color: white;
  16. background: rgba(255,255,255,.1);
  17. position: absolute;
  18. padding: 0px 20px;
  19. left: 50%;
  20. top: 50%;
  21. transform: translate(-50%,-50%);
  22. border-radius: 10px;
  23. box-shadow: 6px 6px 10px black;
  24. }
  25. input{
  26. border: 1px solid gray;
  27. border-radius: 20px;
  28. height: 40px;
  29. width: 300px;
  30. }
  31. button{
  32. width: 80px;
  33. height: 40px;
  34. transform: translate(80%,20%);
  35. border: 1px solid black;
  36. border-radius: 20px;
  37. margin: 0px 20px;
  38. }
  39. input{
  40. background: rgba(255,255,255,.5);
  41. }
  42. a{
  43. text-decoration: none;
  44. }
  45. </style>
  46. </head>
  47. <body>
  48. <form action="" id="myJM" method="post">
  49. <h3>白马时光</h3>
  50. <p>昵称: <input type="text" id="userName" placeholder="输入3-6个大写或小写字母")></p>
  51. <p>密码: <input type="password" id="userPwd" placeholder="不能为标点或文字(长度在6-10)")></p>
  52. <p>
  53. <button type="button" onclick="fun01()">提交</button>
  54. <button type="reset">清除</button>
  55. </p>
  56. </form>
  57. <script>
  58. //登陆
  59. function fun01() {
  60. //拿到输入框的值
  61. var f1=userName.value;
  62. var f2=userPwd.value;
  63. //正则
  64. var rexName=/^[a-zA-Z]{3,6}$/;
  65. var rexPwd=/^\w{6,10}$/;
  66. //正则匹配
  67. var b1=rexName.test(f1)
  68. var b2=rexPwd.test(f2)
  69. if(b1&&b2){
  70. alert("注册成功")
  71. }else{
  72. if(userName.valu==""||userPwd.value==""){
  73. alert("信息不能为空")
  74. return false;
  75. }
  76. alert("格式不规范")
  77. return false;
  78. }
  79. }
  80. </script>
  81. </body>
  82. </html>

 我的注册界面有一个清除按钮,在输入值后可以一键清除

输入值符合要求后点击提交就会提示注册成功 

 

三.购物车界面

我的购物车和商城在同一个界面,所以我说这是一个不完善的购物车

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>购物车</title>
  6. <style type="text/css">
  7. * {
  8. padding: 0px;
  9. margin: 0px;
  10. /* 去除编号 */
  11. list-style: none;
  12. }
  13. img{
  14. width: 250px;
  15. height: 250px;
  16. }
  17. td{
  18. font-size: 20px;
  19. font-weight: 40px;
  20. width: 200px;
  21. text-align: center;
  22. }
  23. .nav {
  24. height: 50px;
  25. background: black;
  26. }
  27. .nav>li {
  28. color: white;
  29. float: left;
  30. /* 文字垂直剧中 只要行高和高度一致 */
  31. line-height: 50px;
  32. padding: 0px 30px;
  33. position: relative;
  34. }
  35. li {
  36. position: relative;
  37. text-align: center;
  38. }
  39. .nav>li:hover {
  40. background: blue;
  41. }
  42. .nav ul {
  43. background: green;
  44. width: 100px;
  45. position: absolute;
  46. left: 0px;
  47. opacity: 0;
  48. transform: rotate(0deg) scale(.5);
  49. transition: .2s;
  50. }
  51. li li:hover {
  52. background: yellow;
  53. }
  54. .nav>li:hover ul {
  55. opacity: 1;
  56. transform: rotate(360deg) scale(1);
  57. }
  58. li::after {
  59. content: "";
  60. position: absolute;
  61. width: 0;
  62. height: 5px;
  63. background: pink;
  64. bottom: 10px;
  65. left: 50%;
  66. transform: translate(-50%, 0);
  67. transition: 1s;
  68. }
  69. li:hover::after {
  70. width: 80%;
  71. body {
  72. font-size: 12px;
  73. line-height: 25px;
  74. }
  75. table {
  76. border-top: solid 1px #666666;
  77. border-left: solid 1px #666666;
  78. }
  79. td {
  80. text-align: center;
  81. border-right: solid 1px #666666;
  82. border-bottom: solid 1px #666666;
  83. }
  84. .left {
  85. text-align: left;
  86. padding-left: 10px;
  87. }
  88. #photo {
  89. border: solid 1px #0066CC;
  90. width: 200px;
  91. text-align: center;
  92. z-index: 2;
  93. position: absolute;
  94. display: none;
  95. top: 50px;
  96. left: 50px;
  97. background-color: #ffffff;
  98. }
  99. #big {
  100. width: 200px;
  101. }
  102. h1 {
  103. /* transform: translate(45%); */
  104. text-align: center;
  105. }
  106. table {
  107. margin: 0 auto;
  108. width: 100%;
  109. border: 2px solid #aaa;
  110. border-collapse: collapse;
  111. }
  112. table th,
  113. table td {
  114. border: 2px solid #aaa;
  115. padding: 5px;
  116. }
  117. th {
  118. background-color: #eee;
  119. }
  120. .id{
  121. font-size: 10px;
  122. }
  123. </style>
  124. </head>
  125. <body>
  126. <ul class="nav">
  127. <li>个人中心 </li>
  128. <li>首页</li>
  129. </ul>
  130. <table style="width: 100%;" cellspacing="0" cellpadding="0" >
  131. <tr>
  132. <td>商品图片</td>
  133. <td>商品名称</td>
  134. <td >商品价格</td>
  135. <td>操作</td>
  136. </tr>
  137. <tr>
  138. <td>
  139. <img src="img/1.png"/>
  140. </td>
  141. <td class="left">飞鸟集</td>
  142. <td class="sum">26.00元</td>
  143. <td align="center">
  144. <input type="button" value="加入购物车" onclick="add_shoppingcart(this)" />
  145. </td>
  146. </tr>
  147. <tr>
  148. <td >
  149. <img src="img/2.png"/>
  150. </td>
  151. <td class="left">月亮与六便士</td>
  152. <td class="sum">26.80元</td>
  153. <td>
  154. <input type="button" value="加入购物车" onclick="add_shoppingcart(this)" />
  155. </td>
  156. </tr>
  157. <tr>
  158. <td>
  159. <img src="img/3.png"/>
  160. </td>
  161. <td class="left">小王子</td>
  162. <td class="sum">32.80元</td>
  163. <td align="center">
  164. <input type="button" value="加入购物车" onclick="add_shoppingcart(this)" />
  165. </td>
  166. </tr>
  167. <tr>
  168. <td>
  169. <img src="img/4.png"/>
  170. </td>
  171. <td class="left">新月集</td>
  172. <td class="sum">44.00元</td>
  173. <td align="center">
  174. <input type="button" value="加入购物车" onclick="add_shoppingcart(this)" />
  175. </td>
  176. </tr>
  177. <tr>
  178. <td>
  179. <img src="img/5.png"/>
  180. </td>
  181. <td class="left">茶馆/我这一辈子</td>
  182. <td class="sum">67.40元</td>
  183. <td align="center">
  184. <input type="button" value="加入购物车" onclick="add_shoppingcart(this)" />
  185. </td>
  186. </tr>
  187. <tr>
  188. <td>
  189. <img src="img/6.png"/>
  190. </td>
  191. <td class="left">呼啸山庄</td>
  192. <td class="sum">38.00元</td>
  193. <td align="center">
  194. <input type="button" value="加入购物车" onclick="add_shoppingcart(this)" />
  195. </td>
  196. </tr>
  197. </table>
  198. <div id="photo" onmouseout="hidden()" onmousemove="shows()"></div>
  199. <h1>购物车</h1>
  200. <table id="a">
  201. <thead>
  202. <tr>
  203. <th>商品</th>
  204. <th>单价(元)</th>
  205. <th>数量</th>
  206. <th>金额(元)</th>
  207. <th>删除</th>
  208. </tr>
  209. </thead>
  210. <tbody id="goods">
  211. </tbody>
  212. <tfoot>
  213. <tr>
  214. <td colspan="3" align="right">总计</td>
  215. <td id="total"></td>
  216. <td><button onclick="tk(this)">购买</button></td>
  217. </tr>
  218. </tfoot>
  219. </table>
  220. <script>
  221. //第一个表格
  222. function show(image, event) {
  223. var x;
  224. var y;
  225. document.getElementById("photo").style.display = "block";
  226. x = parseInt(event.clientX) + parseInt(document.documentElement.scrollLeft);
  227. y = parseInt(event.clientY) + parseInt(document.documentElement.scrollTop);
  228. document.getElementById("photo").style.top = y + "px";
  229. document.getElementById("photo").style.left = x + "px";
  230. document.getElementById("big").src = "images/" + image;
  231. }
  232. function shows() {
  233. document.getElementById("photo").style.display = "block";
  234. }
  235. function hidden() {
  236. document.getElementById("photo").style.display = "none";
  237. }
  238. window.onscroll = "show()";
  239. //------------------------------------------------------------------------------------------------
  240. var map = new Map(); //创建一个集合
  241. function add_shoppingcart(btn) { //btn就是上面传下来的this
  242. //console.log(btn);
  243. var ntr = document.createElement("tr");
  244. //获取到商品的价格和名称
  245. var tr = btn.parentNode.parentNode; //获取到按钮的父亲
  246. var tds = tr.children;
  247. //获取商品的名称
  248. var name = tds[0].innerHTML;
  249. //获取商品的价格
  250. var price = tds[2].innerHTML;
  251. console.log("name:" + name + ",price:" + price);
  252. //判断集合中是否又加入商品.如果有不能加入,只能加数量,没有可加入
  253. if (map.has(name)) {
  254. //如果有不能加入,只能加数量
  255. var tr1 = map.get(name);
  256. //console.log(tr1);
  257. //var btn1=tr1.getElementById("btn1");
  258. var btn1 = tr1.getElementsByTagName("button")[1];
  259. //console.log(btn1);
  260. jia(btn1);
  261. } else {
  262. //如果没有该商品,可以正常添加
  263. ntr.innerHTML =
  264. `
  265. <td style="text-align:center;">${name}</td>
  266. <td style="text-align:center;">${price}</td>
  267. <td style="text-align:center;">
  268. <button onclick="jian(this)">-</button>
  269. <input type="text" value="1" size="1" />
  270. <button id="btn1" onclick="jia(this)">+</button>
  271. </td>
  272. <td>${price}</td>
  273. <td style="text-align:center;"><button onclick="del(this)">X</buttton></td>`;
  274. //将name和一行数据存入到集合中
  275. map.set(name, ntr);
  276. //找到tbody的对象
  277. var tbody = document.getElementById("goods");
  278. //把上面创建好的一行五列加入到tbody中
  279. tbody.appendChild(ntr);
  280. sum();
  281. }
  282. }
  283. function del(btn) {
  284. var tr = btn.parentNode.parentNode;
  285. tr.remove(); //删除的是DOM文档中的内容,并没有把集合中的内容删除.
  286. var tr = btn.parentNode.parentNode; //获取到按钮的父亲
  287. var tds = tr.children;
  288. //获取商品的名称
  289. var name = tds[1].innerHTML;
  290. map.delete(name); //删除的是集合中的内容
  291. sum();
  292. }
  293. function jian(btn) {
  294. var inpt = btn.nextElementSibling;
  295. var amount = inpt.value;
  296. if (amount <= 1) {
  297. return;
  298. } else {
  299. inpt.value = --amount;
  300. var trs = btn.parentNode.parentNode;
  301. console.log(trs);
  302. var price = parseInt(trs.children[1].innerHTML);
  303. trs.children[3].innerHTML = price * amount;
  304. sum();
  305. }
  306. }
  307. function jia(btn) { //形式参数
  308. //获取+号按钮左边input控件的对象
  309. var inpt = btn.previousElementSibling;
  310. //console.log(Inpt);
  311. var amount = inpt.value;
  312. //console.log(amount);
  313. inpt.value = ++amount; //把累加后的数放进去
  314. var td = btn.parentNode.previousElementSibling;
  315. //console.log(td);
  316. var price = parseInt(td.innerHTML); //取到单价的值
  317. //console.log(price);
  318. var rtd = btn.parentNode.nextElementSibling;
  319. rtd.innerHTML = price * amount;
  320. sum();
  321. }
  322. //求所有商品的累加和
  323. function sum() {
  324. //获取到tbody的对象
  325. var tbody = document.getElementById("goods");
  326. var trs = tbody.children; //得到tbody的孩子
  327. var total = 0; //用于求累加和
  328. for (i = 0; i < trs.length; i++) { //取到每一个商品的价格
  329. var price = trs[i].children[3].innerHTML;
  330. total = total + parseInt(price);
  331. }
  332. var t = document.getElementById("total");
  333. //然后把total的值放入到t对象中
  334. t.innerHTML = total;
  335. }
  336. function tk(btn){
  337. }
  338. </script>
  339. </body>
  340. </html>

看到图片上黑色的一行工具栏了吗,在代码中写了呦 

在点击加入购物车后 ,商品的信息会在购物车显示,点击两次数量会加一,在购物车数量点加减数量会变化

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发