5分钟实战:用油猴脚本为任意网页注入动态交互特效

news2026/3/13 22:48:23
1. 从“看网页”到“玩网页”油猴脚本的魔法世界你是不是也经常觉得每天浏览的网页千篇一律交互方式就那么几种点一下、滑一下时间长了总觉得有点乏味我刚开始接触油猴脚本的时候也是抱着这种“能不能让网页变得更有趣一点”的想法。结果一上手就发现这简直是为我们这些喜欢“折腾”的用户打开了一扇新世界的大门。简单来说油猴脚本就像是你浏览器的一个私人魔法师它能在网页加载完成后悄悄地、按照你的意愿去修改这个网页。你想让按钮点击时有水波纹效果想给重要的文字加上悬浮高亮甚至是想让整个页面的配色随机变换这些听起来很酷的动态交互特效其实用几行JavaScript代码就能实现而且整个过程从零开始到看到效果可能真的只需要5分钟。油猴脚本本身是一个浏览器插件最主流的就是Tampermonkey。它本身不提供任何功能而是一个强大的“脚本管理器”。你可以把它想象成一个舞台而我们写的JavaScript脚本就是舞台上的演员。演员脚本按照我们写的剧本代码去表演最终在网页这个场景里呈现出我们想要的效果。它的魅力在于你不需要是专业的网页开发者也不需要去修改网站的源代码——那既不可能也不安全。你只需要在浏览器里安装好这个插件然后写一小段脚本就能对你访问的任何网页进行“个性化手术”。这种“即改即生效”的体验对于解决一些网页浏览中的小痛点或者纯粹为了增加趣味性实在是太方便了。今天我们就从一个非常具体、视觉反馈强烈的案例入手为网页上的任意元素比如按钮、图片、链接注入动态交互特效。具体来说我们会实现两个效果一是点击元素时产生涟漪扩散效果就像在水面丢下一颗石子二是鼠标悬浮在元素上时元素会有一个柔和的高亮和放大动画。这两个效果不仅能立刻让你的网页“活”起来更重要的是通过这个完整的案例你能彻底掌握油猴脚本从分析、编码到调试的整个核心流程。你会发现给网页添加动态特效其实和搭积木一样简单有趣。2. 五分钟环境搭建装上你的“魔法工具箱”工欲善其事必先利其器。我们的“魔法工具箱”非常简单只需要两步。别担心我会带你一步步走保证一分钟内搞定。2.1 安装油猴插件Tampermonkey首先你需要一个支持扩展的现代浏览器比如谷歌Chrome、微软Edge或者火狐Firefox。这里我以最普及的Chrome浏览器为例其他浏览器操作几乎一模一样。打开你的Chrome浏览器点击右上角的三个点选择“更多工具” - “扩展程序”。或者你也可以直接在地址栏输入chrome://extensions/并回车直达扩展管理页面。确保页面右上角的“开发者模式”开关是打开的状态。这会显示一些高级选项。点击页面左上角的“Chrome 网上应用店”按钮它会跳转到官方的扩展商店。这里有个非常重要的安全提示请务必从Chrome网上应用店这样的官方渠道安装Tampermonkey不要从任何第三方网站下载.crx文件。官方商店的扩展都经过安全审核能最大程度避免恶意脚本侵害你的浏览器。在商店的搜索框里输入“Tampermonkey”。你通常会看到第一个结果就是它那个戴着猴子帽子的绿色图标。认准它点击“添加到Chrome”。在弹出的确认窗口里点击“添加扩展”。几秒钟后你会发现浏览器右上角的工具栏里多了一个黑底白猴头的图标。恭喜你舞台已经搭好了安装完成后我建议你点击一下这个猴子图标熟悉一下它的界面。你会看到“已安装脚本”、“添加新脚本”、“设置”等选项。现在先不用管我们马上就来创建第一个属于自己的脚本。2.2 创建你的第一个脚本文件有了舞台我们得准备演员脚本了。点击浏览器右上角的Tampermonkey图标在下拉菜单中选择“添加新脚本”。这时Tampermonkey会为你打开一个全新的代码编辑器页面。这个页面乍一看可能有点复杂但别慌里面大部分内容都是“元数据注释”是用来描述你这个脚本的“说明书”真正需要我们动手写的核心代码只有一小部分。编辑器里已经预先填充了一个脚本模板包括一个基本的函数框架和一些注释。我们可以先大致浏览一下但为了更清晰地学习我建议你把编辑器里所有现有的代码全部删掉我们从一张白纸开始一行一行地敲出我们的第一个魔法。3. 编写脚本的“身份证”理解元数据注释在写具体的特效代码之前我们必须先写好脚本的“身份证”也就是元数据注释块。这部分内容被包裹在// UserScript和// /UserScript之间用双斜杠开头告诉油猴管理器这个脚本的基本信息。它决定了脚本在什么时候、对哪个网站生效。我们一步步来解析和填写。// UserScript // name 网页元素动态特效增强 // namespace https://your-site.com (可以留空或写个人主页) // version 1.0 // description 为网页按钮和链接添加点击涟漪与悬浮高亮效果让交互更生动 // author 你的名字 // match *://*/* // icon https://www.google.com/s2/favicons?domaingithub.com // grant none // /UserScript我来逐行解释一下这些标签的含义这很重要name: 你的脚本的名字会显示在Tampermonkey的管理列表里。起个直观的名字比如“网页元素动态特效增强”。namespace: 一个命名空间通常可以是你个人网站的URL或者简单留空。主要用于区分不同作者的脚本。version: 脚本的版本号。当你以后改进脚本时可以更新这个版本号方便管理。description: 对脚本功能的简短描述。写清楚它能干什么比如“为网页按钮和链接添加点击涟漪与悬浮高亮效果”。author: 你的大名。match:这是最关键的一行它定义了脚本在哪些网页地址上运行。*://*/*是一个通配符模式意思是“在所有协议http/https、所有域名、所有路径的网页上运行”。对于我们今天这个旨在为任意网页添加通用特效的脚本我们就用这个最宽泛的匹配规则。如果你想针对特定网站比如只对知乎生效可以写成*://www.zhihu.com/*。icon: 脚本显示的小图标。这里我用了谷歌的favicon服务它会自动获取你指定域名的图标。你也可以直接用一个图片链接。grant: 定义脚本需要使用的特殊油猴API权限。我们目前用不到所以写none。把上面这段代码复制到刚才清空的编辑器里并把author后面的名字改成你的。这样脚本的“身份证”就办好了。接下来就是施展真正魔法的时刻——编写JavaScript代码。4. 核心魔法编写动态交互特效脚本现在我们进入最有趣的部分写代码让网页元素“动”起来。我们的目标是实现两个效果代码会分成两个主要函数。我会把代码拆解开用最直白的方式解释每一行是干什么的。4.1 第一步创建并注入专属的CSS样式为什么先写CSS因为我们的特效比如涟漪的圆圈、高亮的阴影需要特定的样式来定义它们长什么样。我们需要把这些样式“注射”到网页的头部head确保它们能生效。(function() { use strict; // 使用严格模式让代码更规范避免潜在错误 // 1. 创建样式元素 let style document.createElement(style); style.type text/css; style.innerHTML /* 定义涟漪效果的基础样式 */ .ripple-effect { position: absolute; border-radius: 50%; background-color: rgba(100, 149, 237, 0.7); /* 半透明的矢车菊蓝 */ transform: scale(0); animation: ripple-animation 0.6s linear; pointer-events: none; /* 防止涟漪圈层干扰鼠标点击 */ } /* 涟漪的扩散动画关键帧 */ keyframes ripple-animation { to { transform: scale(4); opacity: 0; } } /* 定义鼠标悬浮高亮效果 */ .hover-highlight { transition: all 0.3s ease-out !important; /* !important 用于覆盖网页原有样式 */ box-shadow: 0 0 8px rgba(66, 133, 244, 0.5) !important; transform: scale(1.05) !important; } ; // 2. 将样式元素添加到网页的head中 document.head.appendChild(style); console.log(动态特效样式已注入); // 在控制台输出提示方便调试代码解读document.createElement(style)我们创建了一个新的HTMLstyle标签元素。style.innerHTML ...我们把定义特效样式的CSS代码以字符串模板的形式赋给这个style标签的内容。注意这里用了反引号 它可以方便地书写多行字符串。在CSS里我们定义了三个东西.ripple-effect类这是点击后产生的那个水波纹圆圈。我们把它定位为绝对定位absolute圆形有个起始的蓝色初始大小缩放为0并绑定了一个叫ripple-animation的动画时长0.6秒。keyframes ripple-animation这是动画的具体过程。从初始状态from这里省略了默认就是scale(0)变化到结束状态to放大4倍scale(4)并完全透明opacity: 0。这样就形成了扩散并消失的效果。.hover-highlight类这是鼠标放上去后的效果。我们给元素添加了三个属性的过渡动画transitionall代表所有可过渡属性时长0.3秒缓动函数是ease-out先快后慢。当元素加上这个类时它会瞬间获得一个蓝色的发光阴影box-shadow和轻微的放大效果scale(1.05)。!important是一个CSS技巧用来提高这条样式的优先级确保它能覆盖掉网页本身可能存在的样式。document.head.appendChild(style)最后把这个装满样式的style标签塞进当前网页的head标签里。这样我们定义的样式就对整个页面生效了。4.2 第二步实现点击涟漪效果函数样式准备好了接下来要写一个函数在用户点击某个元素时动态地创建一个涟漪圆圈并把它放在正确的位置播放动画。// 创建点击涟漪效果的函数 function createRipple(event) { // 获取被点击的元素 const targetElement event.currentTarget; // 确保元素不是静态定位否则涟漪的绝对定位会出问题 if (window.getComputedStyle(targetElement).position static) { targetElement.style.position relative; targetElement.style.overflow hidden; // 隐藏超出边界的涟漪 } // 创建涟漪元素一个div const ripple document.createElement(div); ripple.classList.add(ripple-effect); // 计算涟漪圆圈的位置应该在鼠标点击的点为中心 const rect targetElement.getBoundingClientRect(); const size Math.max(rect.width, rect.height); const x event.clientX - rect.left - size / 2; const y event.clientY - rect.top - size / 2; // 设置涟漪圆圈的大小和位置 ripple.style.width ripple.style.height ${size}px; ripple.style.left ${x}px; ripple.style.top ${y}px; // 将涟漪元素添加到被点击的元素内部 targetElement.appendChild(ripple); // 动画结束后移除涟漪元素避免堆积 ripple.addEventListener(animationend, () { ripple.remove(); }); }代码解读这个函数会在元素被点击时调用event参数包含了点击事件的所有信息。event.currentTarget指的就是被我们监听了点击事件的这个元素本身。window.getComputedStyle(targetElement).position这行代码是获取元素当前的定位方式。如果它是默认的static我们的涟漪圆圈绝对定位就会相对于整个网页定位而不是相对于这个按钮那就乱套了。所以我们把它改成relative并设置overflow: hidden让超出按钮范围的涟漪部分不显示。document.createElement(div)和ripple.classList.add(ripple-effect)创建了一个新的div元素并给它加上了我们之前定义好的涟漪样式类。getBoundingClientRect()是获取元素在视窗中位置和尺寸的神器。我们用它来计算要让涟漪圆圈以鼠标点击点为中心应该把这个圆圈放在哪里left和top值。计算稍微有点绕但原理就是用鼠标相对于视窗的位置减去元素左上角相对于视窗的位置再减去圆圈半径的偏移。最后把创建好的涟漪圆圈appendChild到被点击的元素里这样它就会在这个元素内部显示和动画。animationend事件监听器非常关键它会在CSS动画播放完毕后自动移除这个涟漪圆圈元素。如果不移除你点一次就创建一个div点多了页面里就会堆满看不见的div影响性能。4.3 第三步实现悬浮高亮效果函数悬浮效果相对简单我们不需要创建新元素只需要在鼠标进入和离开时给目标元素添加或移除一个CSS类。// 处理鼠标悬浮高亮效果的函数 function handleHover(event) { event.currentTarget.classList.add(hover-highlight); } // 处理鼠标离开移除高亮效果的函数 function handleHoverOut(event) { event.currentTarget.classList.remove(hover-highlight); }这两个函数非常简洁一个负责添加类一个负责移除类。剩下的视觉效果全部由CSS中的.hover-highlight类和transition属性自动完成。这就是CSS动画的魅力所在。4.4 第四步找到网页元素并绑定事件现在特效函数和样式都齐了我们怎么让网页上的按钮、链接等元素用上这些特效呢我们需要“找到”它们并给它们“安装”上事件监听器。// 主函数在页面加载完成后执行 function init() { // 选择我们希望添加效果的元素这里以按钮和链接为例 // 你可以根据需要修改这个选择器比如 a (所有链接), .btn (所有btn类按钮) 等 const elementsToEnhance document.querySelectorAll(button, a, [rolebutton]); elementsToEnhance.forEach(element { // 为每个元素绑定点击事件触发涟漪效果 element.addEventListener(click, createRipple); // 为每个元素绑定鼠标悬浮和离开事件触发高亮效果 element.addEventListener(mouseenter, handleHover); element.addEventListener(mouseleave, handleHoverOut); // 可选为元素添加一个自定义属性标记已被处理避免重复绑定 element.setAttribute(data-enhanced, true); }); console.log(已为 ${elementsToEnhance.length} 个元素注入了动态特效); } // 确保在页面主体内容加载完成后再执行我们的初始化函数 // 使用 setTimeout 是为了确保DOM完全就绪这是一个简单可靠的技巧 if (document.readyState loading) { document.addEventListener(DOMContentLoaded, init); } else { // 如果页面已经加载完毕直接运行 setTimeout(init, 100); } })(); // 立即执行函数结束代码解读document.querySelectorAll(button, a, [rolebutton])这行代码是核心选择器。它使用CSS选择器语法找到了页面中所有的button按钮、a链接以及任何具有rolebutton属性的元素这是一种无障碍设计标签也常被用作按钮。你可以自由修改这个选择器比如你想给所有图片加特效就改成img想给所有输入框加就改成input。这是油猴脚本定制化的精髓。.forEach(element { ... })遍历我们找到的每一个元素。element.addEventListener(click, createRipple)为这个元素添加一个点击事件监听器。当它被点击时浏览器就会自动调用我们之前写好的createRipple函数。同理绑定mouseenter鼠标进入和mouseleave鼠标离开事件到对应的处理函数。element.setAttribute(data-enhanced, true)这是一个好习惯。我们给处理过的元素打上一个标记自定义属性data-enhanced。这样如果我们未来修改脚本或者页面动态加载了新元素我们可以通过检查这个标记来避免对同一个元素重复绑定事件。最后一大段if...else...是确保我们的init()函数在正确的时机执行。DOMContentLoaded事件表示HTML文档结构已加载完成此时操作DOM是最安全的。如果这个事件已经触发过了readyState不是loading我们就用setTimeout(init, 100)稍微延迟一下立即执行这也是一个兼容性很好的做法。5. 保存、调试与创意扩展5.1 保存并启用你的脚本代码写完了在Tampermonkey的编辑器里点击左上角的“文件”菜单选择“保存”或者直接按CtrlS(Windows) /CmdS(Mac)。保存后编辑器标签页就可以关闭了。回到任意一个网页比如百度首页点击浏览器右上角的Tampermonkey图标在下拉菜单的“已安装脚本”里你应该能看到刚刚创建的“网页元素动态特效增强”脚本并且它默认是启用状态旁边有个绿色的勾。如果没启用手动点一下启用它。现在奇迹时刻到了。刷新一下你当前的页面然后去点击任何一个按钮或链接。看到了吗一个蓝色的涟漪从你的点击点扩散开来再把鼠标移动到按钮上按钮会微微放大并泛起光晕。你的第一个动态交互特效脚本成功了5.2 使用开发者工具调试如果效果没出来别着急程序员的工作一半是在调试。按下键盘上的F12键打开浏览器的“开发者工具”。切换到“控制台 (Console)”标签页这里会显示我们脚本里用console.log打印的信息。你应该能看到“动态特效样式已注入”和“已为 XX 个元素注入了动态特效”这两条信息。如果没看到说明脚本可能没运行。检查元素样式点击开发者工具左上角的小箭头图标或按CtrlShiftC然后去点击网页上的一个元素。在右侧的“样式 (Styles)”面板里滚动查找看看有没有我们注入的.ripple-effect和.hover-highlight样式。你也可以看看元素有没有被绑定上我们的事件监听器在“事件监听器 (Event Listeners)”面板里找click,mouseenter等。排查常见问题选择器不对如果控制台显示找到了0个元素那肯定是querySelectorAll里的选择器没匹配到任何东西。试着改成更通用的button看看。样式被覆盖有些网站自身的CSS非常“强势”我们的!important可能也打不过。这时可以在开发者工具里仔细检查看看我们加的样式是否被划掉了表示被覆盖。脚本未生效检查Tampermonkey图标确保脚本是启用状态并且match规则包含了当前网站的网址。5.3 发挥你的创意更多特效灵感掌握了基础你就可以尽情发挥了。这里有几个我尝试过觉得很有趣的方向改变特效视觉风格在CSS里把涟漪的background-color改成渐变色radial-gradient(...)或者把高亮的box-shadow改成更炫酷的发光效果。动画时长、缓动函数ease-in-out,cubic-bezier都可以随意调整创造出不同的手感。应用到更多元素修改querySelectorAll的选择器字符串。试试img让图片也有悬浮效果或者h1, h2, h3让标题也动起来。甚至可以用*通配符给所有元素都加上谨慎使用可能会卡。实现打字机效果找到文章正文的容器比如document.querySelector(article)然后将其内部文本逐个字符地显示出来配合setTimeout或requestAnimationFrame就能模拟出打字机效果。添加背景粒子动画在页面角落创建一个canvas画布用JavaScript在画布上绘制和移动许多小圆点粒子就能做出非常科幻的背景特效。这个稍微复杂点但网上有很多现成的粒子动画代码可以借鉴。与页面内容互动比如写一个脚本在页面中所有数字旁边自动添加一个“点击朗读”的小按钮点击后用浏览器的语音合成API念出这个数字。这需要用到Web Speech API。写油猴脚本最棒的一点就是即时反馈。你改一行代码按CtrlS保存然后刷新网页就能立刻看到效果。这种快速迭代、不断试错的过程本身就是一种巨大的乐趣。我从最初只是改改颜色到现在能写出自动整理页面信息、添加快捷操作的复杂脚本都是一点点“玩”出来的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2409089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…