博客列表 >JavaScript:留言板和选项卡小案例

JavaScript:留言板和选项卡小案例

阿心
阿心原创
2020年06月01日 19:33:38750浏览

留言小案例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>留言小案例</title>
  6. </head>
  7. <body>
  8. 评论回复:<input type="text"><button>发表</button>
  9. <ol></ol>
  10. <script>
  11. var cl = console.log.bind(console)
  12. var input = document.querySelector("input")
  13. var ol = document.querySelector("ol")
  14. var button = document.querySelector("button")
  15. //给input添加事件监听
  16. //keyup(按键抬起) keydown(按键按下)keypress(获取单个字母,不包括功能键)
  17. input.addEventListener("keyup",function(ev){
  18. // cl(ev.key)
  19. // key获取键值
  20. // keycode获取键代码(16进制数)
  21. if(ev.key === "Enter" || ev.key === "button"){
  22. if(input.value.length == 0){
  23. alert("内容为空")
  24. }
  25. //创建li元素
  26. var li = document.createElement("li")
  27. //给li填充内容
  28. li.innerHTML = input.value + "<button onclick='del(this)'>删除</button>"
  29. //添加到ol子元素里面
  30. ol.appendChild(li)
  31. //将留言显示第一行
  32. if(ol.childElementCount == 0) ol.appendChild(li)
  33. //在前面插入(insertBefore)
  34. else ol.insertBefore(li,ol.firstElementChild)
  35. //清空留言框
  36. input.value = null
  37. }
  38. })
  39. function del(del){
  40. //父节点(parentNode)
  41. // cl(del.parentNode.parentNode);
  42. return confirm("是否要删除?")? del.parentNode.parentNode.removeChild(del.parentNode) : false
  43. }
  44. </script>
  45. </body>
  46. </html>

选项卡小案例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>选项卡小案例</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. }
  11. a{text-decoration:none}
  12. li {
  13. list-style-type: none;
  14. }
  15. li:hover{cursor:default}
  16. .top{width:100%;display:flex;background: #3399FF;text-align:center;}
  17. .logo{width:160px;display:flex;line-height:60px;font-size:28px;font-weight:bold;text-shadow:0 0 1px}
  18. .header {
  19. height: 60px;
  20. display: flex;
  21. flex-direction:column;
  22. width:100%;
  23. }
  24. .nav {
  25. height: 26px;
  26. display: flex;
  27. width:500px;
  28. margin-top:10px;
  29. }
  30. .nav li {
  31. border-radius: 5px 5px 0 0;
  32. text-shadow: 0 0 1px;
  33. width: 85px;
  34. flex:auto;
  35. background:#ddd;
  36. margin-right:1px;
  37. }
  38. .nav li.active{
  39. background:yellow;
  40. }
  41. .item {
  42. display: none;
  43. }
  44. .item li{
  45. margin-left:5px;
  46. padding:0 15px 0 0;
  47. }
  48. .item.active {
  49. display:block;
  50. display:flex;
  51. }
  52. </style>
  53. </head>
  54. <body>
  55. <div class="top">
  56. <div class="logo">&nbsp;&nbsp;后台管理</div>
  57. <div class="header">
  58. <ul class="nav">
  59. <li class="active" data-index="1">系统设置</li>
  60. <li data-index="2">用户管理</li>
  61. <li data-index="3">文章管理</li>
  62. <li data-index="4">管理员</li>
  63. <li data-index="5">退出</li>
  64. </ul>
  65. <ul class="item active" data-index="1">
  66. <li ><a href="">网站设置</a></li>
  67. <li><a href="">网站公告</a></li>
  68. <li><a href="">订单统计</a></li>
  69. <li><a href="">系统日志</a></li>
  70. </ul>
  71. <ul class="item" data-index="2">
  72. <li><a href="">用户列表</a></li>
  73. <li><a href="">审核用户</a></li>
  74. <li><a href="">审核用户</a></li>
  75. <li><a href="">用户日志</a></li>
  76. </ul>
  77. <ul class="item" data-index="3">
  78. <li><a href="">文章管理</a></li>
  79. <li><a href="">发布文章</a></li>
  80. <li><a href="">文章审核</a></li>
  81. </ul>
  82. <ul class="item" data-index="4">
  83. <li><a href="">管理员</a></li>
  84. <li><a href="">添加管理员</a></li>
  85. <li><a href="">管理员日志</a></li>
  86. </ul>
  87. </div>
  88. </div>
  89. <div id="main"></div>
  90. <script>
  91. var cl = console.log.bind(console)
  92. var nav = document.querySelector(".nav")
  93. var items= document.querySelectorAll(".item")
  94. // cl(nav)
  95. //给导航添加绑定事件
  96. nav.addEventListener("click", show, false)
  97. function show(ev) {
  98. cl(ev.target)
  99. //清除原有激活
  100. ev.target.parentNode.childNodes.forEach(function (item) {
  101. if (item.nodeType === 1) item.classList.remove("active")
  102. })
  103. //当前点击设置为激活
  104. ev.target.classList.toggle("active")
  105. //清空列表原有激活
  106. items.forEach(function(item){
  107. item.classList.remove("active")
  108. })
  109. //列表查询data-index相等内容,并设置为激活
  110. items.forEach(function(item){
  111. if(item.dataset.index === ev.target.dataset.index)
  112. item.classList.add("active")
  113. })
  114. }
  115. </script>
  116. </body>
  117. </html>

总结:很奇怪,对着抄感觉基本上都可以理解到了。但是自己想要添加点想要的东西时候确不知道怎么做。应该还是要多抄点作业,熟悉属性这些怎么用之后自己才能做吧?

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议