Javascript-获取悬停元素的背景颜色

2024-01-12

我目前正在制作一个 google chrome 扩展,并使用此 javascript 动态更改悬停元素的背景颜色:

var bindEvent = function(elem ,evt,cb) {
    //see if the addEventListener function exists on the element
    if ( elem.addEventListener ) {
        elem.addEventListener(evt,cb,false);
    //if addEventListener is not present, see if this is an IE browser
    } else if ( elem.attachEvent ) {
        //prefix the event type with "on"
        elem.attachEvent('on' + evt, function(){
            /* use call to simulate addEventListener
             * This will make sure the callback gets the element for "this"
             * and will ensure the function's first argument is the event object
             */
             cb.call(event.srcElement,event);
        });
    }
};


bindEvent(document,'mouseover', function(event) 
{ var target = event.target || event.srcElement;
    /* getting target.style.background and inversing it */
});

bindEvent(document,'mouseout', function(event) 
{ var target = event.target || event.srcElement;
    /* getting target.style.background and inversing it */
});

当与静态值一起使用时,例如target.style.background = #FFFFFF;当光标悬停在某个元素上并且target.style.background = #00000;当光标离开该元素时,它可以正常工作。但是,当我尝试获取值时target.style.background甚至target.style.backgroundColor,我总是得到rgb(255,255,255),无论元素的背景颜色是什么。

我知道如何将rgb转换为hex以及如何反转它,但是如果我无法获取背景的初始值,那就没有用了。

所以,我的问题是:为什么var foo = target.style.backgroundColor;总是回来rgb(255, 255, 255)我如何获得正确的值?

附加说明:该扩展稍后将移植到其他浏览器,因此如果可能的话,跨浏览器解决方案会很好。


在我的经验中,target.style仅填充内联样式。要获取包含 css 定义的样式,只需使用getComputedStyle https://developer.mozilla.org/en-US/docs/Web/API/window.getComputedStyle方法。例如

//instead of this
target.style.backgroundColor

//try this
getComputedStyle(target).backgroundColor

*请注意,使用getComputedStyle方法返回一个read-only对象,以及target.style仍应用于设置背景颜色。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript-获取悬停元素的背景颜色 的相关文章

  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 将一个文本框的内容复制到另一个文本框

    假设在文本框中输入了一个条目 是否可以在第二个文本框中保留相同的输入文本 如果是这样 这是如何完成的
  • 禁用 JavaScript 中的右键单击

    当我尝试禁用右键单击时 它不起作用 我尝试使用下面的代码 document onclick function e console log e button if e button 2 e preventDefault return fals
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 如何记录返回的事件发射器

    如何记录所发出的事件stream返回于MyFunc 与 JSDoc MyFunc description param Object opts description return Stream description function My
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 如何清除WebGL中的矩形区域?

    WebGL 有一个clear清除整个表面的方法 清除表面的特定矩形的最佳方法是什么 例如 我想将一个从 50 50 开始的 100x100 像素框设置为全零 ARGB 0 0 0 0 我现在能想到的就是用一个写入零的片段着色器绘制一个四边形
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • 您如何看待引导模式触发器的相应回调?

    On 引导模态 http getbootstrap com javascript modals 我们知道我们可以为触发器绑定事件 例如show or hide using show shown hide hidden 但此事件绑定仅适用于一
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标

随机推荐

  • PHP 将两个时间变量相加

    在我的 PHP 应用程序中 我想计算两个时间变量的总和 我正在寻找类似这个例子的东西 time1 15 20 00 time2 00 30 00 time time1 time2 如果你期望的答案是15 50 00你想使用strtotime
  • 执行 git reset --hard HEAD^ 后恢复添加/暂存的文件?

    我添加了一个新文件F1并对另一个文件 F2 进行了更改 但随后做了git reset hard HEAD 并且我丢失了对文件的所有更改 有没有some怎么样 我可以把它们找回来吗 我确实在这里看过一个相关问题 如何撤消 git reset
  • 更改函数中的每个 for 循环,以便在每次失败的迭代后自动执行错误处理

    这个问题源于捕获生成器内的错误并随后继续 https stackoverflow com questions 13645112 catch errors within generator and continue afterwards 我有
  • 使用 4 mb 查找不在 40 亿列表中的整数。但 4 MB 还不够[重复]

    这个问题在这里已经有答案了 给定一个包含 40 亿个整数的列表 找到一个不在列表中的整数 使用 4MB 内存 采访是用Java进行的 我的解决方案是使用 BitSet 然而根据我的计算 4 MB 内存中没有足够的位 c 4 MB 4096
  • 标题文本垂直居中

    我希望增加 jquery 移动应用程序标题的大小 当我这样做时 我需要将标题居中 我发现我可以添加一行 line height 30px 到CSS 但这还远远不够 我想一定有更好的方法来做到这一点
  • getSystemService(Context.NSD_SERVICE) 冻结 5.0 模拟器

    尝试执行以下行 NsdManager Mgr NsdManager Ctxt getSystemService Context NSD SERVICE 在 Android 5 0 模拟器 ARMv7a 在 Win64 上 中 模拟器会冻结
  • const_cast 的行为

    我正在阅读有关 C 中的 const cast 运算符的内容 1 我无法理解的第一件奇怪的事情是 const cast 运算符语法 即 const cast 表达式 gt 我对这种语法的理解是 它有助于摆脱常量性expressionof t
  • 这个shell测试达到什么目的

    我有一个非常简单的问题 我无法回答 在 shell 中 这个命令会做什么 test d VIRTUAL ENV virtualenv VIRTUAL ENV 它似乎测试 virtualenv 目录是否存在 但我不明白 if 会如何处理该信息
  • 快速或简洁地确定基于行的数据集合中每列的最长字符串

    从我上次查询的结果 https stackoverflow com questions 2760168 can i set auto width on an open xml sdk generated spreadsheet withou
  • 为什么实现 IObjectSafety 没有带来什么改变?

    我们有一个 activex 对象 它实现了 IObjectSafety 以表明它对于脚本编写是安全的 它从受信任的站点安装 但我们仍然收到 IE 投诉 称该页面上的控件对于脚本编写不安全 运行我们的 activex 的站点管理员不愿意启用未
  • HQL 查询 id 对/元组

    我正在尝试使用 HQL 查询两个域之间新创建的关系 所以我想做类似的事情 select x id y id from Author as x join x books as y where x id y id not in 1 2 3 4
  • 通过连接查询大型数据集(15+ 百万行)

    我正在尝试连接两个表 products and products markets While products记录不足一百万条 product markets接近2000万条记录 数据已更改 因此架构创建表中可能存在一两个拼写错误 CREA
  • Javascript 日期时间字符串到 Date 对象

    我正在调试一个小型应用程序 其某些功能只能在 Chrome 中运行 问题在于日期选择器 您在其中选择日期和时间 然后日期选择器将其连接到日期时间字符串中 无论如何 字符串看起来像这样 2012 10 20 00 00 然而 现在使用它的 j
  • 为 property = "type.id" 选择什么 @JsonTypeInfo.ID 进行反序列化,JsonTypeInfo.Id.CUSTOM?

    所以我的 JSON 看起来像这样 ActivityDisplayModel name lunch with friends startTime 12 00 00 type id MEAL description Meal complete
  • 将标志传递给 Matlab 函数的最简洁方法是什么?

    我正在设计一个函数 它以一个结构和任意数量的标志作为参数 该函数将包含几个if检查是否设置了特定标志 实现这一目标的最巧妙方法是什么 我正在考虑将标志作为单独的字符串参数传递 有更简洁的解决方案吗 我会像使用那样做varargin and
  • Spring Batch ChunkRequest 抛出 stackOverflow

    我正在挣扎Spring Batch 远程分块使用较新版本的 Spring boot 首先 我尝试将 ChunkRequest 作为事件发送 这是不可能的 因为它没有公共默认构造函数 作为解决方案 我必须创建自定义序列化器和反序列化器 并在
  • Silverlight 4 中的 System.Data.DataTable?

    有谁知道如果系统 数据 数据表Silverlight 4 beta 现在支持吗 过去 我在 ASP NET 和 WinForm 项目中使用它进行数据绑定 其中 UI 和对象需要在运行时构建 如果没有 是否在路线图中 不 这不在 SL4 中
  • 在 React TypeScript 中推断 2 个 props 之间的泛型类型

    我相信这是可能的 但我不太擅长 TS 中的高级输入 还 所以 我想让 React 组件在一个 prop 中接受任何对象形状的数组 然后在不同的 事件函数 prop 中发出相同类型 interface Props data AnyGeneri
  • CGAffineTransform之后转换父/子UIView之间的坐标

    在我开始手工做所有事情之前 我想问一下框架是否可以提供一些帮助 我有一个 UIView 其中包含另一个带有地图的 UIView 父 UIView 包含地图的一些图例 最初我在地图视图中定义一些坐标 例如 100 40 并在父视图中放置一块图
  • Javascript-获取悬停元素的背景颜色

    我目前正在制作一个 google chrome 扩展 并使用此 javascript 动态更改悬停元素的背景颜色 var bindEvent function elem evt cb see if the addEventListener