博客列表 >ClassList对象学习总结、表单事件实践

ClassList对象学习总结、表单事件实践

P粉317509817
P粉317509817原创
2022年04月07日 12:25:21409浏览

ClassList对象实践

1. 给出一个h2

<h2 class="title">测试专用</h2>

2. 添加几个css样式

  1. <style>
  2. .title {
  3. background-color: green;
  4. color: black;
  5. }
  6. .title1 {
  7. background-color: red;
  8. }
  9. .title2{
  10. color:chartreuse;
  11. }
  12. .title3 {
  13. background-color: orange;
  14. color:burlywood;
  15. }
  16. </style>

效果:

3. 看我操作

  • 为h2添加一个叫‘title1’的类名从而改变它的样式

    1. // 获取h2
    2. const h2 = document.querySelector('.title');
    3. // classlist.add()添加类名
    4. h2.classList.add('title1');

    效果:

  • 判断h2是否包含其他类名

    1. // clsslist.contains():判断是是否包含
    2. console.log(h2.classList.contains('title1'));//显示true
    3. console.log(h2.classList.contains('title3'));//显示false

    效果:

  • 删除类名

    1. // classlist.remove()删除类名
    2. h2.classList.remove('title');
    3. console.log(h2.classList.contains('title'));

    效果:


  • 替换类名

    1. // classlist.replace()替换类名
    2. h2.classList.replace('title1','title');
    3. console.log(h2.classList.contains('title'));
    4. console.log(h2.classList.contains('title1'));

    效果:


  • 动态添加类名

    1. // classlist.toggle()动态切换css
    2. // 如果之前没有这个样式,就自动添加,如果有,则去掉这个样式
    3. console.log(h2.classList.contains('title'));//显示true
    4. h2.classList.toggle('title');
    5. console.log(h2.classList.contains('title'));//显示false
    6. console.log(h2.classList.contains('title3'));//显示false
    7. h2.classList.toggle('title3');
    8. console.log(h2.classList.contains('title3'));//显示true

效果:


表单事件

html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>表单控件</title>
  8. <link rel="stylesheet" href="style.css">
  9. </head>
  10. <body>
  11. <form action="" method="post" id="login">
  12. <label class="title">用户登录</label>
  13. <label for="email">邮箱:</label>
  14. <input type="email" id="email" name="email" value="" autofocus />
  15. <label for="">密码:</label>
  16. <input type="password" id="password" name="password" />
  17. <button class="submit" onclick="check(this)">登录</button>
  18. </form>
  19. <script>
  20. function check(ele){
  21. // 禁用默认行为
  22. event.preventDefault();
  23. // 防止冒泡
  24. event.stopPropagation();
  25. // 非空验证
  26. // 通过id和name拿到元素
  27. let email = ele.form.email;
  28. let password =ele.form.password;
  29. if (email.value.length === 0){
  30. alert('邮箱不能为空');
  31. email.focus();
  32. return false;
  33. }else if (password.value.length === 0) {
  34. alert('密码不能为空');
  35. email.focus();
  36. return false;
  37. }
  38. else {
  39. alert('验证通过');
  40. }
  41. }
  42. document.forms.login.email.onblur=function(){
  43. if (this.value.length === 0){
  44. alert('邮箱不能为空');
  45. return false;
  46. this.focus();
  47. }
  48. }
  49. document.forms.login.password.onblur=function(){
  50. if (this.value.length === 0){
  51. alert('密码不能为空');
  52. return false;
  53. this.focus();
  54. }
  55. }
  56. </script>
  57. </body>
  58. </html>

css

  1. body {
  2. background-color:mediumaquamarine;
  3. color: #444;
  4. font-weight: lighter;
  5. }
  6. #login {
  7. width: 20em;
  8. border-radius: 0.3em;
  9. box-shadow: 0 0 1em #888;
  10. box-sizing: border-box;
  11. padding: 1em 2em 1em;
  12. margin: 5em auto;
  13. background-color:paleturquoise;
  14. display: grid;
  15. grid-template-columns: 3em 1fr;
  16. gap:1em 0;
  17. }
  18. #login .title{
  19. grid-area:auto / span 2 ;
  20. place-self: center;
  21. }
  22. #login input {
  23. border-radius: 0.3em;
  24. border: none;
  25. padding-left: 0.3em;
  26. }
  27. #login input:focus {
  28. outline: none;
  29. box-shadow: 0 0 5px seagreen;
  30. background-color: hsl(283,100%,95%);
  31. /* hsl 色相、饱和度、亮度 */
  32. border-radius: 0.2 em;
  33. transition: 0.5s;
  34. }
  35. #login button{
  36. grid-area: auto / 2 / auto;
  37. outline: none;
  38. background-color: lightseagreen;
  39. border: none;
  40. height: 2em;
  41. color:#fff;
  42. }
  43. #login button:hover{
  44. cursor: pointer;
  45. background-color: seagreen;
  46. transition: 0.5s;
  47. }

效果:

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