博客列表 >Js的classList演示以及Event事件的演示

Js的classList演示以及Event事件的演示

想做一个躺平的程序员
想做一个躺平的程序员原创
2022年04月09日 16:39:31452浏览

1.classList演示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>计算样式</title>
  7. </head>
  8. <body>
  9. <h2 style="color: red;" >第二等级的标题</h2>
  10. <h3>第三等级的标题</h3>
  11. <h4>第四等级的标题</h4>
  12. <style>
  13. .box{
  14. color: yellow;
  15. }
  16. .box2{
  17. background-color: blue;
  18. }
  19. </style>
  20. </body>
  21. <script>
  22. // 获取计算样式有两种
  23. // 第一种是只能计算行内样式
  24. let h2=document.querySelector("h2");
  25. //改变h2背景颜色为蓝色
  26. h2.style.backgroundColor="blue";
  27. //查看h2的背景样式 //控制台打印为blue
  28. console.log(h2.style.backgroundColor);
  29. //由于第一种不常用
  30. //我们来看看第二种获取计算样式,第二种的话能计算外部样式和外联样式
  31. let h3=document.querySelector("h3");
  32. let h3cssobj=window.getComputedStyle(h3); //获取h3的外部样式和外两样式
  33. console.log(h3cssobj.color);//打印rbg(0,0,0)
  34. //我们来为h3标题添加字体颜色
  35. //我们来看classlist属性,classlist属性可以访问,修改以及添加,删除class类的属性
  36. //添加一个或多个类属性
  37. //添加字体颜色为黄色
  38. h3.classList.add("box");
  39. //访问
  40. console.log(h3.classList);
  41. //删除
  42. h3.classList.remove("box");
  43. //toggle() : 当第一个参数存在class属性时,将移除该属性,当不存在class属性,则对元素添加class属性
  44. h3.classList.toggle("box"); //第一个参数不存在,将添加class属性
  45. h3.classList.toggle("box");//第一个参数存在,将移除class属性
  46. </script>
  47. </html>

通过看上面的代码,我们再来看看页面效果


2.事件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js事件</title>
  7. </head>
  8. <body>
  9. <ul class="list">
  10. <li >item1</li>
  11. <li>item2</li>
  12. <li>item3</li>
  13. <li>item4</li>
  14. <li>item5</li>
  15. </ul>
  16. </body>
  17. <script>
  18. // 事件
  19. // let li=document.querySelector("li"); //获取li节点第一个
  20. // li.onclick=function(){
  21. // console.log("事件创建成功");
  22. // }
  23. //事件监听器
  24. //参数一为事件类型,参数二为行为
  25. // li.addEventListener("click",function(){
  26. // event.preventDefault; //取消默认行为
  27. // event.stopPropagation;//停止事件冒泡行为
  28. // console.log(`事件监听器被执行成功` );
  29. // })
  30. //自定义事件
  31. // let click=new Event("click");
  32. // //定时器执行
  33. // setInterval(function(){
  34. // li.dispatchEvent(click);
  35. // },2000)
  36. //事件冒泡
  37. // let ul=document.querySelector(".list");
  38. // li.addEventListener('click',function(){
  39. // console.log(event.currentTarget); //事件的本体
  40. // console.log(event.target); //事件的触发者
  41. // event.preventDefault(); //是个方法,取消默认行为
  42. // event.stopPropagation(); //阻止事件冒泡
  43. // console.log("li");
  44. // });
  45. // ul.onclick=function(){
  46. // console.log('ul');
  47. // }
  48. // document.body.onclick=function(){
  49. // console.log("body");
  50. // }
  51. //事件委托
  52. // 将需要添加到子元素本身上的事件,通过添加到父元素上来进行触发
  53. let ul=document.querySelector(".list");
  54. ul.addEventListener("click",function(){
  55. console.log(event.currentTarget);
  56. console.log(event.target);
  57. console.log("ul");
  58. });
  59. document.querySelectorAll("li")[0].onclick=
  60. function(){
  61. console.log("li1");
  62. }
  63. document.querySelectorAll("li")[1].onclick=
  64. function(){
  65. console.log("li2");
  66. }
  67. document.querySelectorAll("li")[2].onclick=
  68. function(){
  69. console.log("li3");
  70. }
  71. </script>
  72. </html>

2-1.表单事件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js表单事件</title>
  7. </head>
  8. <style>
  9. form{
  10. width: 300px;
  11. margin: 0 auto;
  12. }
  13. fieldset{
  14. /* 设置为网格容器 */
  15. display: grid;
  16. grid-template-columns: 4rem 1fr;
  17. grid-gap: .5rem;
  18. place-items: center;
  19. }
  20. fieldset legend{
  21. text-align: center;
  22. }
  23. fieldset button{
  24. grid-area: auto/ span 2;
  25. }
  26. .box{
  27. box-shadow: 0 0 .2rem mediumturquoise;
  28. border: none;
  29. transition: 1s;
  30. }
  31. </style>
  32. <body>
  33. <form action="" method="POST " id="login">
  34. <fieldset>
  35. <legend>用户登录</legend>
  36. <label for="username">用户名:</label>
  37. <input type="text" name="username" id="username">
  38. <label for="email">邮箱:</label>
  39. <input type="email" name="email" id="email">
  40. <button type="submit">登录</button>
  41. </fieldset>
  42. </form>
  43. <script>
  44. // 1. submit: 提交时触发
  45. // 2. focus: 获取焦点时触发
  46. // 3. blur: 失去焦点时触发
  47. // 4. change: 值发生改变且失去焦点时触发
  48. // 5. input: 值发生改变就会触发,不必等失去焦点,与change不同
  49. let bnt1=document.querySelector("button");
  50. bnt1.addEventListener("click",function(){
  51. event.stopPropagation();//阻止事件冒泡
  52. event.preventDefault();//取消表单默认行为
  53. });
  54. // 每一个表单控件都有对应的表单
  55. let form=bnt1.form;
  56. console.log(bnt1.form);
  57. // 获取用户输入控件
  58. let username=form.username;
  59. //获取邮箱控件
  60. let email=form.email;
  61. //为用户输入框添加获取焦点是触发事件
  62. username.onblur=function(){
  63. if(username.value==''){
  64. console.log("用户名不能为空");
  65. }
  66. }
  67. //获取焦点时
  68. username.onfocus=function(){
  69. console.log(username.classList);
  70. username.classList.add("box");
  71. setTimeout(function(){username.classList.toggle("box")},2500);
  72. }
  73. </script>
  74. </body>
  75. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议