当前位置: 首页 > news >正文

Javascript忘记了,好像又想起来了一点?

一、你可能“手打过”的代码:

// 公式应用1:点击按钮显示隐藏菜单
document.querySelector('.menu-btn').addEventListener('click', function() {document.querySelector('.nav-menu').classList.toggle('show');
});// 公式应用2:鼠标悬停显示提示
document.querySelector('.tooltip').addEventListener('mouseover', function() {this.nextElementSibling.style.visibility = 'visible';
});// 公式应用3:输入时实时验证
document.querySelector('#email').addEventListener('input', function() {if(this.value.includes('@')) {this.style.borderColor = 'green';} else {this.style.borderColor = 'red';}
});

二、这些看起来是官方命名的可以直接使用的事件?我哪知道有哪些?

积木1:获取元素的多种方式

// 这些都是“选择元素”的方法
const byId = document.getElementById('header');      // 通过ID
const byClass = document.getElementsByClassName('item'); // 通过类名(集合)
const byTag = document.getElementsByTagName('div');  // 通过标签名(集合)
const bySelector = document.querySelector('.main');  // 通过CSS选择器(第一个)
const bySelectorAll = document.querySelectorAll('.btn'); // 通过CSS选择器(所有)

积木2:常用的事件类型

element.addEventListener('click', function() {});      // 点击
element.addEventListener('mouseenter', function() {}); // 鼠标移入
element.addEventListener('mouseleave', function() {}); // 鼠标移出
element.addEventListener('input', function() {});      // 输入框输入时
element.addEventListener('submit', function() {});     // 表单提交时
element.addEventListener('scroll', function() {});     // 滚动时

积木3:常用的操作

// 内容操作
element.innerHTML = '<strong>新内容</strong>'; // 可以包含HTML
element.textContent = '纯文本内容';           // 只是纯文本// 样式操作
element.style.color = 'red';                // 直接修改样式
element.classList.add('active');            // 添加类
element.classList.remove('active');         // 移除类
element.classList.toggle('active');         // 切换类(有就删,没有就加)// 显示/隐藏
element.style.display = 'block';    // 显示
element.style.display = 'none';     // 隐藏// 属性操作
element.setAttribute('data-value', '123');  // 设置属性
element.getAttribute('data-value');         // 获取属性

三、运行这个实例看看?

<!-- HTML 部分 -->
<img src="small.jpg" class="gallery-img" data-fullsize="large.jpg">
<div class="lightbox" style="display:none;"><span class="close">&times;</span><img class="lightbox-img">
</div><script>
// JavaScript 部分
// 点击小图显示大图
document.querySelector('.gallery-img').addEventListener('click', function() {const largeUrl = this.getAttribute('data-fullsize');document.querySelector('.lightbox').style.display = 'block';document.querySelector('.lightbox-img').setAttribute('src', largeUrl);
});// 点击关闭按钮隐藏灯箱
document.querySelector('.close').addEventListener('click', function() {document.querySelector('.lightbox').style.display = 'none';
});
</script>

是不是很熟悉?
我去!?这不就是点击商品图小图查看大图,然后可以叉掉吗?自己试着优化吧?

四、其他问题

1、data-fullsize的fullsize是啥意思?除了fullsize还有什么?

  • data-fullsize 这个名字不是 JavaScript 的关键字,而是 开发者自己取的名字。
  • 命名规则:data- + 你自己取的名字(例如:data-size, data-user-id, data-price)

2、&times;又是啥,好像是一个叉号,还有别的么?和&nbsp;是同种东西吗?

  • 它们都是 HTML 实体,用于安全地显示特殊字符。
  • &times;:是一个可见的符号 (×),常用作关闭图标。
  • &nbsp;:是一个不可见的空格,用于防止换行和强制显示空格。

其他常用的 HTML 实体:

HTML 实体显示结果描述常用场景
&lt;<小于号 (Less Than)在网页中显示 HTML 代码示例,避免被浏览器解析
&gt;>大于号 (Greater Than)同上
&amp;&与符号 (Ampersand)在代码或URL中显示“&”字符本身
&quot;"引号 (Quotation Mark)在属性值里嵌套引号时使用
&copy;©版权符号 (Copyright)显示版权信息
&hellip;省略号 (Horizontal Ellipsis)表示“更多”或文本未完全显示
&rarr;&rightarrow;右箭头表示方向、导航

3、冷知识:为啥它叫做times而不是quit或者close?time不是时间吗?和叉有什么关系?

  • × 符号在视觉上,表示停止或取消,
  • 但它的名字和它的原始功能——表示乘法。
  • 在数学运算和公式中,5 × 5 = 25 里的那个 × 符号,就是它。它的名字 × 是 “times” 的缩写,因为英语里读乘法 “5 × 5” 就是 “five times five”。

文章转载自:

http://1x3GOfoE.mjyqc.cn
http://z1q44onB.mjyqc.cn
http://zLrhuuBv.mjyqc.cn
http://erMxANTN.mjyqc.cn
http://nRk4ldXF.mjyqc.cn
http://qVdaM3Lm.mjyqc.cn
http://ss9jIsiB.mjyqc.cn
http://sfOoMeXt.mjyqc.cn
http://KMimAjw7.mjyqc.cn
http://mMJx1GTN.mjyqc.cn
http://UO5SeOKI.mjyqc.cn
http://0Ne4W91D.mjyqc.cn
http://gSvqLyUX.mjyqc.cn
http://bcUc6BcV.mjyqc.cn
http://9dOFgHzB.mjyqc.cn
http://eNSoRzZf.mjyqc.cn
http://87lwUthU.mjyqc.cn
http://EGotHXzJ.mjyqc.cn
http://pQX7pA8v.mjyqc.cn
http://9NORgqdl.mjyqc.cn
http://p2L2rdaE.mjyqc.cn
http://WfHkSVK8.mjyqc.cn
http://a6SWXeCf.mjyqc.cn
http://hOP8T7xT.mjyqc.cn
http://myuYhhG1.mjyqc.cn
http://giqDHS5d.mjyqc.cn
http://WYAyj1t9.mjyqc.cn
http://0lYFgtmT.mjyqc.cn
http://tMvyhh4p.mjyqc.cn
http://2eUxtwDm.mjyqc.cn
http://www.dtcms.com/a/379827.html

相关文章:

  • AI + 制造:NebulaAI 场景实践来了!
  • mosdns缓存dns服务器配置记录
  • android14 硬键盘ESC改BACK按键返回无效问题
  • 代码随想录算法训练营第62天 | Floyd 算法精讲、A * 算法精讲 (A star算法)、最短路算法总结篇、图论总结
  • 教程:用免费 Google Translate API 在 VSCode 中实现中文注释自动翻译英文
  • 数据储存方式
  • Java生态圈核心组件深度解析:Spring技术栈与分布式系统实战
  • 解决Ubuntu中apt-get -y安装时弹出交互提示的问题
  • 硅基计划3.0 Map类Set类
  • Ubuntu20.04手动安装中文输入法
  • 算法训练营DAY60 第十一章:图论part11
  • java 反射Class类/加载类/创建对象及方法
  • RL【9】:Policy Gradient
  • Java短链接生成服务实战指南
  • JAVA Web —— A / 网页开发基础
  • TensorFlow深度学习实战:从零开始构建你的第一个神经网络
  • Keepalived 负载均衡
  • 智能文档处理业务,应该选择大模型还是OCR专用小模型?
  • 《Redis核心机制解析》
  • Netty 在 API 网关中的应用篇(请求转发、限流、路由、负载均衡)
  • 金蝶云星空插件开发记录(一)
  • Knockout-ES5 入门教程
  • 基于 Art_DAQ、InfluxDB 和 PyQt 的传感器数据采集、存储与可视化
  • 【图像处理基石】图像压缩有哪些经典算法?
  • C语言实战:简单易懂通讯录
  • youte-agent部署(windows)
  • Python实现点云法向量各种方向设定
  • Linnux IPC通信和RPC通信实现的方式
  • apache实现LAMP+apache(URL重定向)
  • MongoDB 与 GraphQL 结合:现代 API 开发新范式