码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaScript核心Web APIs


    目录

    一、Web APIs简介

    1 Web APIs和JS基础的关联性

    2 MDN详细API 网址

    二、DOM

    1 什么是DOM

    1.1 DOM树

    2 获取页面元素

    2.1 根据ID获取

    2.2 根据标签名获取

    2.3 通过HTML5新增的方法获取

    2.4 获取特殊元素 body html

    3 事件基础

    3.1 事件三要素

    3.2 执行事件的步骤

    4 DOM操作元素

    4.1 改变元素内容

    4.2 innerText 和 innerHTML 的区别

    4.3 常用元素的属性操作

    4.4 案例 分时显示不同照片,显示不同问候语

    4.5 表单元素的属性操作

    4.6 案例 仿京东显示隐藏密码明文

    4.7 样式属性操作

    三、操作元素案例

    1 案例 仿淘宝关闭二维码案例

    2 案例 排他思想(算法)

    3 案例 百度换肤

    4 案例 表格隔行变色效果

     5 案例 全选与取消全选

     四、自定义属性

    1 获取自定义属性值

    2 设置属性值

    3 移除属性

    4 案例 tab栏切换  重点

    5 H5自定义属性

    五、节点操作

    1 节点操作之父节点

    2 子节点

    2.1    1. 第一种 parentNode.childNodes  (标准)

    2.2    2. 第二种 parentNode.children (非标准)

    2.3 子节点之第一个子元素和最后一个子元素  不管是文本节点还是元素节点

    2.4 案例 新浪下拉菜单

     3 兄弟节点

     4 创建和添加节点

     5 案例-简单版发布留言案例

     6 删除节点

     7 案例 删除留言

     8 复制节点(克隆节点)

     9 案例 动态生成表格

     六、事件高级

    1 注册事件

    1.1 传统注册方式

    1.2 方法监听注册方式

     2 删除事件

     3 DOM事件流

    3.1 DOM事件流代码验证

     4 事件对象

    4.1 常见事件对象属性和方法

    4.2 e.target和this的区别

    4.3 阻止默认行为

     5 阻止事件冒泡

     6 事件委托(代理、委派)

     7 常用的鼠标事件

    7.1 鼠标事件对象

    7.2 案例-跟随鼠标的天使

     8 常用的键盘事件

    8.1 keyCode 判断用户按下了哪个键

     9 案例-模拟京东按键输入内容

    10 案例-模拟京东快递单号查询

    七、BOM

    1 BOM概述

    1.1 BOM的构成

    2 window对象的常见事件

    2.1 窗口加载事件

    2.2 调整窗口大小事件

    3 定时器

    3.1 两种定时器

    3.2 setTimeout()定时器

    3.3 案例 5秒钟后自动关闭广告

    3.4 停止setTimeout()定时器

    3.5 setInterval()定时器

    3.6 案例 计时器效果

    3.7 停止setInterval()定时器

    3.8 案例 发送短信案例

     3.9 this指向问题

    4 JS执行机制

    4.1 JS是单线程

    4.2 同步和异步

    4.3 JS执行机制

    5 location对象

    5.1 location对象属性

    5.2 案例 5秒钟之后自动跳转页面

    5.3 案例 location对象常见的方法

    6 navigator对象

    7 history对象

    八、PC端网页特效

    1 元素偏移量offset系列

    1.1 offset概述

    1.2 offset和style的区别

    1.3 案例 获取鼠标在盒子内的坐标

    1.4 案例 模态框拖拽

    2 元素可视区client系列

    2.1 立即执行函数

    2.2 淘宝 flexible.js源码分析

    3 元素滚动scroll系列

    3.1 元素滚动scroll系列

    3.2 页面被卷去头部

    3.3 案例-仿淘宝固定右侧侧边栏

    3.4 页面被卷去头部兼容性解决方案

    3.5 mouseenter和mouseover的区别

    4 动画函数封装

    4.1 动画实现原理

    4.2 简单动画函数封装

    4.3 给不同对象添加不同计时器

    4.4 缓动动画原理

    4.5 动画函数添加回调函数

    4.6 动画函数封装到单独JS文件里面

    5 常见网页特效案例

    5.1 案例-网页轮播图

    5.2 节流阀以及逻辑中断应用

    5.3 案例-返回顶部

    5.4 案例-筋斗云

    九、移动端网页特效

    1 触屏事件

    1.1 触屏事件概述

    1.2 触摸事件对象(TouchEvent)

    1.4 移动端拖动元素

    2 移动端常见特效

    2.1 classList属性

    2.2 案例-返回顶部

    2.3 移动端click事件300ms延时问题解决方案

    3 移动端常用开发插件

    3.1 什么是插件

    3.2 Swiper插件的使用

    3.3 其他常见插件

    3.4 插件使用总结

    3.5 移动端视频插件zy.media.js

    4 移动端常用开发框架

    4.1 框架概述

    4.2 bootstrap轮播图

    十、本地存储

    1 本地存储

    2 window.sessionStorage

    3 window.localStorage

    4 案例-记住用户名


    一、Web APIs简介

    1 Web APIs和JS基础的关联性

     

        Web APIs阶段:
            Web APIs 是w3c组织的标准
            Web APIs 我们主要学习 DOM 和 BOM
            Web APIs 是我们JS所独有的部分
            我们主要学习页面交互功能
            需要使用JS基础的课程内容做基础
        API :
        API(Application Programming Interface)之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。
        是给程序员提供的一种工具,以便能更轻松的实现想要完成的功能。
        Web APIs:
        Web APIs 是浏览器提供的一套操作浏览器功能和页面元素的API(DOM 和 BOM)。现阶段我们主要针对于浏览器讲解常用的API,主要针对浏览器做交互效果。

    2 MDN详细API 网址

        MDN详细API:
        https://developer.mozilla.org/zh-CN/docs/Web/API

    二、DOM

    1 什么是DOM

        文档对象模型(Doucument Object Model,简称DOM),是w3c组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。
        W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容、结构和样式。

    1.1 DOM树

     
        文档:一个页面就是一个文档,DOM中使用document表示
        元素:页面中的所有标签都是元素,DOM中使用element表示
        节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM中使用node表示。

    2 获取页面元素

    2.1 根据ID获取

        使用getElementById()的方法可以获取带有ID的元素对象。

    1. <div id="time"> 2022 div>
    2. <script>
    3. // 1. 因为我们文档页面从上往下加载,所以先得有标签 所以script写到标签下面
    4. // 2. get 获取element 元素 by 通过 驼峰命名法
    5. // 3. 参数 id 是大小写敏感的字符串
    6. // 4. 返回的是一个元素对象
    7. var timer = document.getElementById('time');
    8. console.log(timer);
    9. console.log(typeof timer);
    10. // 5. console.dir 打印我们返回的元素对象 更好的查看里面的属性和方法
    11. console.dir(timer);
    12. script>

    2.2 根据标签名获取

        getElementsByTagName()方法可以返回带有指定标签名的对象的集合。
     

    1. <body>
    2. <ul>
    3. <li> 许嵩11 li>
    4. <li> 许嵩22 li>
    5. <li> 许嵩33 li>
    6. <li> 许嵩44 li>
    7. <li> 许嵩55 li>
    8. ul>
    9. <ol id="ol">
    10. <li> 嵩11 li>
    11. <li> 嵩22 li>
    12. <li> 嵩33 li>
    13. <li> 嵩44 li>
    14. <li> 嵩55 li>
    15. ol>
    16. <script>
    17. // 1. 返回的是 获取过来的元素对象的集合 以伪数组的形式存储的
    18. var lis = document.getElementsByTagName('li');
    19. console.log(lis);
    20. console.log(lis[0]);
    21. // 2. 我们想要依次打印里面的元素对象我们可以采取遍历的方式 得到元素是动态的
    22. for (var i = 0; i < lis.length; i++){
    23. console.log(lis[i]);
    24. }
    25. // 3. 如果页面中只有一个li 返回的还是伪数组的形式
    26. // 4. 如果页面中没有这个元素 返回的是一个空的伪数组
    27. // 5. 还可以获取某个元素(父元素)内部所有指定标签名的子元素。 element.getElementsByTagName('标签名');
    28. // 6. 注意:父元素必须是单个对象(必须指明是哪一个元素对象)获取的时候不包括父元素自己
    29. //var ol = document.getElementsByTagName('ol');
    30. //console.log(ol[0].getElementsByTagName('li'));
    31. var ol = document.getElementById('ol');
    32. console.log(ol.getElementsByTagName('li'));
    33. script>
    34. body>

    2.3 通过HTML5新增的方法获取

    1. <body>
    2. <div class = "box"> 盒子 div>
    3. <div class = "box"> 盒子 div>
    4. <div id = "nav">
    5. <ul>
    6. <li> 首页 <li>
    7. <li> 产品 <li>
    8. ul>
    9. div>
    10. <script>
    11. // 1. document.getElementsByClassName('类名');根据类名返回元素对象集合
    12. var boxs = document.getElementsByClassName('box');
    13. console.log(boxs);
    14. // 2. document.querySelector('选择器'); 返回指定选择器的第一个元素 切记 里面的选择器需要加符号 类加. .box id加# #nav
    15. var firstBox = document.querySelector('.box');
    16. console.log(firstBox);
    17. var nav = document.querySelector('#nav');
    18. console.log(nav);
    19. var li = document.querySelector('li');
    20. console.log(li);
    21. // 3. document.querySelectorAll('选择器'); 根据指定选择器返回所有元素对象
    22. var allBox = document.querySelectorAll('.box');
    23. console.log(allBox);
    24. var lis = document.querySelectorAll('li');
    25. console.log(lis);
    26. script>
    27. body>

    2.4 获取特殊元素 body html

    1. <body>
    2. <script>
    3. // 1. 获取body元素
    4. var bodyEle = document.body;
    5. console.log(bodyEle);
    6. console.dir(bodyEle);
    7. // 2. 获取html元素
    8. //var htmlEle = document.html; // undefined
    9. var htmlEle = document.documentElement;
    10. console.log(htmlEle);
    11. script>
    12. body>

    3 事件基础

    3.1 事件三要素

        JavaScript使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为。
        简单理解: 触发——响应机制
        网页中的每个元素都可以产生某些可以触发JavaScript的事件,例如,我们可以在用户点击某一个按钮时产生一个事件,然后去执行某些操作。

    1. <body>
    2. <button>许嵩button>
    3. <script>
    4. // 点击一个按钮,弹出对话框
    5. // 1. 事件是由三部分组成 事件源 事件类型 事件处理程序 我们也称为事件三要素
    6. // (1) 事件源 事件被触发的对象 谁 按钮
    7. var btn = document.getElementById('btn');
    8. // (2) 事件类型 如何触发 什么事件 比如鼠标点击(onclick) 还是鼠标经过 还是键盘按下
    9. // (3) 事件处理程序 通过一个函数赋值的方式 完成
    10. btn.onclick = function(){
    11. alert('许嵩');
    12. }
    13. script>
    14. body>

    3.2 执行事件的步骤

        1.获取事件源
        2.注册事件(绑定事件)
        3.添加事件处理程序(采取函数赋值形式)

    1. <body>
    2. <div>许嵩div>
    3. <script>
    4. // 执行事件步骤
    5. // 点击div控制台输出 许嵩
    6. // (1) 获取事件源
    7. var div = document.querySelector('div');
    8. // (2) 事件类型 注册事件(绑定事件)
    9. // div.onclick
    10. // (3) 事件处理程序 通过一个函数赋值的方式
    11. div.onclick = function(){
    12. alert('许嵩');
    13. }
    14. script>
    15. body>

    4 DOM操作元素

        DOM操作可以改变网页的内容、结构和样式。我们可以利用DOM操作元素来改变元素里面的内容、属性等。

    4.1 改变元素内容

        element.innerText
        从起始位置到终止位置的内容,但它去除html标签,同时空格和换行也会去掉
        element.innerHTML
        起始位置到终止位置的全部内容,包括html标签,同时保留空格和换行

    1. <button> 许嵩 显示当前系统时间 button>
    2. <div> 某个时间 div>
    3. <p> 123 p>
    4. <script>
    5. // 当点击了按钮,div里面的文字会发生变化
    6. // (1) 获取元素
    7. var btn = document.querySelector('button');
    8. var div = document.querySelector('div');
    9. // (2) 事件类型 注册事件(绑定事件)
    10. btn.onclick = function(){
    11. //div.innerText = '2022-7-24';
    12. div.innerText = getDate();
    13. }
    14. function getDate(){
    15. var date = new Date();
    16. // 我们写一个 2019年 5月 1日 星期三
    17. var year = date.getFullYear();
    18. var month = date.getMonth() + 1;
    19. var dates = date.getDate();
    20. var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
    21. var day = date.getDay();
    22. return '今天是:' + year + '年' + month + '月' + date + '日' + arr[day];
    23. }
    24. // 我们元素可以不用添加事件
    25. var p = document.querySelector('p');
    26. p.innerText = getDate();
    27. script>

    4.2 innerText 和 innerHTML 的区别

    1. <button> 许嵩 显示当前系统时间 button>
    2. <div> 某个时间 div>
    3. <p>
    4. 我是文字
    5. <span> 123 span>
    6. p>
    7. <script>
    8. // innerText 和 innerHTML 的区别
    9. // 1.innerText 不识别html标签 非标准
    10. var div = document.querySelector('div');
    11. div.innerText = ' 今天是: 2022';
    12. // 1.innerHTML 识别html标签 W3c标准 会保留空格和换行
    13. div.innerHTML = ' 今天是: 2022';
    14. // 这两个属性是可读写的 可以获取元素里面的内容
    15. var p = document.querySelector('p');
    16. console.log(p.innerText);
    17. console.log(p.innerHTML); // 会保留空格
    18. script>

    4.3 常用元素的属性操作

        element.innerHTML   element.innerText    改变元素内容
        src href
        id alt title

    1. <button id = "xs"> 许嵩1 button>
    2. <button id = "ss" > 许嵩2 button>
    3. <img src = "images/xs.jpg" alt = "xs许嵩" title="许嵩1">
    4. <script>
    5. // 修改元素属性 src
    6. // (1) 获取元素
    7. var xs = document.getElementById('xs');
    8. var ss = document.getElementById('ss');
    9. var img = document.querySelector('img');
    10. // (2) 事件类型 注册事件(绑定事件)
    11. ss.onclick = function(){
    12. img.src = 'images/ss.jpg';
    13. img.title = "许嵩2";
    14. }
    15. xs.onclick = function(){
    16. img.src = 'images/xs.jpg';
    17. img.title = "许嵩1";
    18. }
    19. script>
    20. body>

    4.4 案例 分时显示不同照片,显示不同问候语

        如果上午时间打开页面,显示上午好,显示上午的图片
        如果下午时间打开页面,显示下午好,显示下午的图片
        如果晚上时间打开页面,显示晚上好,显示晚上的图片

        案例分析:
        根据系统不同时间来判断,所以需要用到日期内置对象
        利用多分支语句来设置不同的图片
        需要一个图片,并且根据时间修改图片,就需要用到操作元素src属性
        需要一个div元素,显示不同问候语,修改元素内容即可

    1. <body>
    2. <button> 许嵩 显示当前系统时间 button>
    3. <img src = "images/swh.gif" alt = "上午好" title="上午好">
    4. //<img src = "images/xwh.gif" alt = "下午好" title="下午好">
    5. //<img src = "images/wsh.gif" alt = "晚上好" title="晚上好">
    6. <div> 上午好 div>
    7. <script>
    8. // (1) 获取元素
  • 相关阅读:
    (附源码)ssm教师工作量核算统计系统 毕业设计 162307
    pytorch TORCH.NN 到底是什么?
    1027 Colors in Mars
    ArcGIS笔记13_利用ArcGIS制作岸线与水深地形数据?建立水动力模型之前的数据收集与处理?
    用Speedtest-Tracker跟踪上网速度
    uniapp插件,对接穿山甲广告sdk
    防火墙Ipsec vpn的配置
    多线程之二(【线程安全】synchronized+volatile+wait+notify)
    反射知识点学习
    计算机丢失mfc140.dll怎么办,分享几种常见解决方案[dll修复工具下载】
  • 原文地址:https://blog.csdn.net/weixin_58997863/article/details/126475054
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号