• webAPI


    目录

    1.WebAPI

    2.什么是API

    3.DOM(操作修改节点属性)

     3.获取元素(如何在文档树中定位节点)

    4.变更树的结构(操作DOM树结构)

    5.事件驱动(event-driven)

    事件驱动的绑定

    事件驱动的冒泡

    小案例:猜数字游戏

    冒泡排序(一秒钟执行一步)


    1.WebAPI

    使用js完成一些有实际意义的工作

    操作文档(document):页面上看到的 DOM

    操作浏览器  BOM

    2.什么是API

    Application Interface 应用接口

    3.DOM(操作修改节点属性)

    让我们可以操作  网页内容、页面结构、页面样式

    js 眼中每一个标签是一个对象


     3.获取元素(如何在文档树中定位节点)

    document.querySelector()

    document.quer

     

     

    可以把用户的输入读出来

    例子如下

     


     

     

    上面是个匿名函数,效果一样。

    背景可以一次切换一个效果

    4.变更树的结构(操作DOM树结构)

    通过html修改某个结点的子孙  element.innerHTML=""

     

     完全按照结点的方式处理:

    1.新建一个元素(结点)文档树之外的结点

    5.事件驱动(event-driven)

    当某事发生时,谁们  应该 做  什么 事

    发生地震时,我应该去安全的地方

    事件源: 地

    事件:  发生地震

    处理对象(处理函数):主要用于图行化界面的编程(网页/App/PC软件)


    示例:

    按钮(处理对象) 事件(点击) 事件源(用户)

    事件处理函数:把页面背景从白色改成红色

    事件驱动的绑定

    1. //1.找到事件处理的对象
    2. var a =document.querySelector('button');
    3. //2.定义处理函数
    4. function 处理背景色(){
    5. //给body 添加css样式:background:red;
    6. var body =document.querySelector('body');
    7. body.style='background-color:pink';
    8. }
    9. function 添加一个Helloworld (){
    10. }
    11. //3.将 事件、事件处理对象、事件处理函数 绑定(bind)
    12. //修改 btn 元素的一个属性
    13. //on :当
    14. //click :点击
    15. //当点击时,调用这个函数
    16. //如果绑定多个处理函数怎么办?
    17. btn.onclick =处理背景色;
    18. //btn.onclick =添加一个Helloworld(); 不可以这样写,写了结果只会执行这个,上面的不会执行
    19. //下面的就俩个都会执行
    20. btn.addEventListener('click',处理背景色)
    21. btn.addEventListener('click',添加一个Helloworld())

    事件驱动的冒泡

     从俯视图看

     

     如何阻止时间冒泡

    e.stopPropagation();

     题外话:

    HTML中关联外部CSS

    link:css 按tab键


    与鼠标回车键绑定,不用点击,按回车就可以

    小案例:猜数字游戏

    1. //1.生成一个随机数字
    2. var 随机数 = parseInt(Math.random()*100)
    3. //2.为按钮绑定随机事件
    4. //3.给input绑定一个键盘被按下的事件
    5. var 按钮 =document.querySelector('#按钮')
    6. var 结果区 =document.querySelector('#结果区')
    7. var 输入 =document.querySelector('#输入');
    8. function 结果判断(){
    9. //1.读取用户输入
    10. var 用户输入的数字 =parseInt(输入.value);
    11. if(isNaN(用户输入的数字)){
    12. 结果区.innerHTML +='请输入数字';
    13. return;
    14. }
    15. 输入.value='';
    16. if(用户输入的数字<随机数){
    17. 结果区.innerHTML +='

      小了

      '
      ;
    18. }else if(用户输入的数字 >随机数){
    19. 结果区.innerHTML +='

      大了

      '
      ;
    20. }else{
    21. 结果区.innerHTML +='

      正确

      '
      ;
    22. }
    23. }
    24. //然后把他们绑定在一块
    25. 输入.onkeypress =function (e){
    26. if(e.key=='Enter'){
    27. 结果判断();
    28. }
    29. }
    30. 按钮.onclick =结果判断;
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>猜数字title>
    6. head>
    7. <body>
    8. <input type="text" id =输入>
    9. <button id ="按钮">button>
    10. <div id="结果区">
    11. div>
    12. <script src="script.js">script>
    13. body>
    14. html>


    冒泡排序(一秒钟执行一步)

    1. var div = document.querySelector('div');
    2. function 打印数组(array) {
    3. div.innerHTML = '';
    4. for (var i in array) {
    5. var span = document.createElement('span');
    6. span.style.display = 'inline-block';
    7. span.style.backgroundColor = 'blue';
    8. span.style.marginRight = '5px';
    9. span.style.width = '30px';
    10. span.style.height = `${30 + array[i] * 30}px`;
    11. span.textContent = array[i];
    12. span.style.textAlign = 'center';
    13. span.style.color = 'white';
    14. span.style.lineHeight = span.style.height;
    15. div.appendChild(span);
    16. }
    17. //div.innerHTML += `

      [${array.join(', ')}]

      `;
    18. }
    19. var array = [9, 5, 2, 7, 3, 6, 8, 4, 1];
    20. var i = 0;
    21. var j = 0;
    22. setInterval(function () {
    23. // 冒泡排序的其中一步(两两比较 + 可能的交换)
    24. if (j >= array.length - i - 1) {
    25. j = 0;
    26. i++;
    27. if (i >= array.length - 1) {
    28. return;
    29. }
    30. }
    31. if (array[j] > array[j + 1]) {
    32. var t = array[j];
    33. array[j] = array[j + 1];
    34. array[j + 1] = t;
    35. }
    36. j++;
    37. 打印数组(array);
    38. }, 1000); //时间设置为1秒
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>冒泡排序title>
    6. head>
    7. <body>
    8. <div>div>
    9. <script src="script.js">script>
    10. body>
    11. html>
  • 相关阅读:
    C语言 —— 指针
    VoLTE端到端业务详解 | 会话管理类
    网络优化(二)——梯度下降
    dos2unix命令
    Linux修改远程登陆端口
    谷粒商城 高级篇 (十五) --------- 登录与注册
    线性回归模型(OLS)1
    Spring -Spring之依赖注入源码解析(下)--实践(流程图)
    SpringBoot 自动配置@EnableAutoConfiguration
    Flask框架【before_first_request和before_request详解、钩子函数、Flask_信号机制】(七)
  • 原文地址:https://blog.csdn.net/wxx200008/article/details/126002475