首页
开发技巧正文内容

99% 的人都不知道!11 个高效 JavaScript 和 CSS 技巧,让网页开发更轻松!

2024年10月20日
阅读时长 4 分钟
阅读量 19
 99% 的人都不知道!11 个高效 JavaScript 和 CSS 技巧,让网页开发更轻松!

让我们一起探索一些便捷的 JavaScript 和 CSS 技巧,帮助你简化网页开发的工作流程,提升效率!

1. 检查用户网络速度

想知道用户的网络速度吗?可以通过 JavaScript 的 Network Information API 实现!访问 navigator.connection.downlink 即可获取下行速度(单位:Mbps)。

if (navigator.connection) {
    const downlink = navigator.connection.downlink;
    console.log(`当前下载速度:${downlink} Mbps`);
} else {
    console.log("浏览器不支持 Network Information API");
}

请注意,这个 API 的支持情况在不同浏览器中可能有所不同。

2. 为移动应用添加振动反馈 📳

想给移动端的网页应用增加触觉反馈?window.navigator.vibrate API 可以触发设备振动。

// 让设备振动 500 毫秒
if (navigator.vibrate) {
    navigator.vibrate(500);
} else {
    console.log("不支持振动 API");
}

// 使用振动和暂停的组合模式
if (navigator.vibrate) {
    navigator.vibrate([200, 100, 200, 100, 200]);
}

记得在使用前检查浏览器和设备的兼容性。

3. 禁止文本粘贴

在某些场景下,你可能需要限制用户向输入框中粘贴内容。以下代码可以实现这一需求。

<input type="text">
<script>
  const input = document.querySelector('input');
  input.addEventListener("paste", function(e){
    e.preventDefault();
  });
</script>

注意: 禁止粘贴在某些情况下可能影响用户体验,请谨慎使用。

4. 轻松隐藏 DOM 元素 🙈

不一定非要使用 JavaScript 隐藏元素。你可以利用原生 HTML 的 hidden 属性轻松隐藏它们。

<p hidden>我是不可见的!</p>

这种方式和 CSS 的 display: none; 类似,让元素消失。

5. 使用 inset 快速定位元素 📍

告别 CSS 中冗长的 topleftrightbottom 组合!inset 属性让你的定位更简洁。

/* 传统方式 */ 
div {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

/* 使用 inset */ 
div {
  position: absolute;
  inset: 0; 
}

这样写不仅简洁,还能提高代码的可读性!

6. 超越 console.log():控制台的更多技巧

console.log() 是调试的基础,但其实浏览器控制台还有很多强大功能:

  • console.table():以表格格式显示数组或对象。

    const data = [
      { name: 'Alice', age: 25 },
      { name: 'Bob', age: 30 }
    ];
    console.table(data);
    
  • console.group()console.groupEnd():将相关日志分组,便于组织。

    console.group('分组标签');
    console.log('日志 1');
    console.log('日志 2');
    console.groupEnd();
    
  • console.time()console.timeEnd():测量代码执行时间。

    console.time('计时器');
    // 代码片段
    console.timeEnd('计时器'); // 输出所花时间
    
  • console.error()console.warn()console.assert():输出错误、警告和断言,增强调试效率。

  • console.clear():清空控制台。

  • console.dir():显示对象属性的交互式列表。

7. 在移动设备上禁用下拉刷新

要禁用移动端页面的下拉刷新效果,可以使用 overscroll-behavior-y CSS 属性。

body {
  overscroll-behavior-y: contain;
}

此属性还能帮助管理模态框滚动,避免滚动到底后背景页面也随之滚动。

8. 让整个页面变为可编辑 ✍️

需要快速让网页变为可编辑区域?contentEditable 属性帮你实现!

document.body.contentEditable = 'true';

注意: 这会让用户可以编辑页面内容,可能影响页面结构和脚本执行。请确保控制好用户输入。

9. ID 自动创建全局变量!

你知道吗?HTML 元素的 ID 可以直接作为 JavaScript 中的变量来引用,无需使用 document.getElementById()

<div id="test"></div>
<script>
    console.log(test); // 自动引用 id 为 "test" 的元素
</script>

这种方法方便快捷,但为了代码的可维护性,建议在实际项目中仍使用 document.getElementById()

10. 实现平滑滚动

想让页面滚动更顺滑?只需在 <html> 的 CSS 中加入 scroll-behavior: smooth;

html {    
    scroll-behavior: smooth;  
}

11. 使用 :empty 选择器

:empty 选择器可以有效定位并样式化空元素。

p:empty {   
  display: none;  
}

例如,上述代码会将所有空的 <p> 标签隐藏。


通过掌握这些高效的 JavaScript 和 CSS 技巧,可以让你的开发工作事半功倍,提升用户体验和代码可读性。赶快试试吧!

免责声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

相关文章

探索多种软件架构模式及其实用应用
2024年11月22日19:06
本文深入探讨了多种软件架构模式,包括有界上下文、边车模式、发布-订阅模式、应用网关、微服务、命令职责分离(CQRS)等,介绍了它们的优点、使用场景以及具体应用实例。文章强调根据具体项目需求和团队能力选择最合适的架构,以构建高效和可维护的解决方案,同时展示了各架构模式间的综合应用,提供了丰富的案例和技术细节。
15个高级Python快捷键助您更快编程
2024年11月21日07:02
本文分享了 15 个高级的 Python 编程快捷键,包括上下文管理器、行内字典合并、函数参数解包、链式比较、dataclasses、海象运算符、反转列表、备忘录缓存、splitlines、enumerate、字典推导、zip 用于并行迭代、itertools.chain 扁平化列表、functools.partial 部分函数和 os.path 文件路径管理等,帮助开发者提高编程效率和代码简洁性。
揭示网页开发的 11 个迷思:停止相信这些误区
2024年11月19日22:05
网页开发充满误解,这篇博文针对11个常见迷思进行揭秘。包括网站开发后不需更新、需掌握所有技术、AI会取代开发者等。强调持续学习、专业化、用户体验的重要性,澄清误区如多任务处理的必要性和最新技术的必需性。文章提醒开发者注重实用而非追求完美代码,以务实态度面对开发工作。
你知道 CSS 的四种 Focus 样式吗?
2024年11月18日21:41
本文介绍了四种 CSS focus 样式::focus、:focus-visible、:focus-within 以及自定义的 :focus-visible-within,帮助提升网站用户体验。:focus 样式应用于被选中元素;:focus-visible 仅在键盘导航时显示;:focus-within 用于父元素;自定义 :focus-visible-within 结合两者效果。合理运用这些样式能使网站更方便键盘用户导航。
利用 Python 实现自动化图像裁剪:简单高效的工作流程
2024年11月11日20:49
使用 Python 和 OpenCV 自动裁剪图像,轻松实现 16:9 的完美构图。这个指南介绍了如何通过代码进行灰度化、模糊处理和边缘检测,最终识别出最重要的部分进行裁剪。特别适合需要批量处理图像的情况,节省大量时间。
每位资深前端开发人员都应了解的 TypeScript 高级概念
2024年11月11日02:07
资深前端开发者应了解 TypeScript 的高级概念,如联合类型、交叉类型、类型保护、条件类型、映射类型、模板字面量类型和递归类型。这些特性可提升代码的可维护性和可扩展性,确保在开发复杂应用时实现更高的类型安全性和效率。