首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

香草JS悬停在div上更改背景颜色

基础概念

香草JavaScript(Vanilla JavaScript)指的是不依赖任何框架或库的原生JavaScript代码。悬停在元素上更改背景颜色是一个常见的交互效果,通常通过事件监听器来实现。

相关优势

  1. 性能:原生JavaScript执行速度快,不需要加载额外的库或框架。
  2. 简洁性:代码量较少,易于理解和维护。
  3. 兼容性:原生代码在不同浏览器中的兼容性较好。

类型

这种效果可以通过以下几种方式实现:

  • 使用addEventListener监听mouseovermouseout事件。
  • 使用CSS伪类:hover

应用场景

  • 用户界面交互:提升用户体验,使界面更加生动。
  • 导航菜单:高亮显示当前选中的菜单项。
  • 卡片式布局:突出显示用户感兴趣的部分。

示例代码

使用原生JavaScript

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hover Effect</title>
    <style>
        .box {
            width: 200px;
            height: 200px;
            background-color: #ccc;
        }
    </style>
</head>
<body>
    <div class="box" id="myBox"></div>

    <script>
        document.getElementById('myBox').addEventListener('mouseover', function() {
            this.style.backgroundColor = 'lightblue';
        });

        document.getElementById('myBox').addEventListener('mouseout', function() {
            this.style.backgroundColor = '#ccc';
        });
    </script>
</body>
</html>

使用CSS伪类

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hover Effect</title>
    <style>
        .box {
            width: 200px;
            height: 200px;
            background-color: #ccc;
        }

        .box:hover {
            background-color: lightblue;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

遇到的问题及解决方法

问题1:悬停效果不生效

原因

  • 可能是CSS选择器错误或JavaScript代码有误。
  • 浏览器缓存问题。

解决方法

  • 检查CSS选择器和JavaScript代码是否正确。
  • 清除浏览器缓存或尝试在无痕模式下打开页面。

问题2:背景颜色变化延迟

原因

  • 可能是JavaScript事件处理函数执行效率低。
  • 页面加载时JavaScript代码未完全加载。

解决方法

  • 确保JavaScript代码在DOM完全加载后执行,可以使用DOMContentLoaded事件。
  • 优化JavaScript代码,减少不必要的计算。
代码语言:txt
复制
document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('myBox').addEventListener('mouseover', function() {
        this.style.backgroundColor = 'lightblue';
    });

    document.getElementById('myBox').addEventListener('mouseout', function() {
        this.style.backgroundColor = '#ccc';
    });
});

通过以上方法,可以有效解决悬停效果不生效或背景颜色变化延迟的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【Html.js——功能实现】新年贺卡(蓝桥杯真题-1768)【合集】

    背景介绍 新年马上到了,大家肯定有很多祝福的话语要对自己的亲人朋友说,下面我们一起来制作一张贺卡,让我们把想说的话都写在贺卡上。...body:将页面的背景颜色设置为 var(--wine-red),高度设置为视口高度(100vh),使用 Flex 布局,垂直方向排列子元素,居中对齐,字体为 Caveat 字体。....card:定义了贺卡主体的样式,包括宽度、高度、边框半径、背景颜色、字体大小、文本对齐方式、内边距等,同时使用 position: relative 为内部的 p 元素的绝对定位提供参考。...button:设置按钮的样式,无边框,背景颜色为 var(--gold),添加内边距和边框半径,水平居中。 button:hover:当鼠标悬停在按钮上时,将鼠标指针变为手型,增加交互性。...同时,浏览器解析 ,将 CSS 样式应用到相应的元素上,包括页面的背景颜色、元素的布局、字体、大小、颜色等。

    7110

    CSS 伪类和伪元素知识点汇总,不可错过,让你不再困惑

    通常用于设置未访问链接的特定样式,如颜色、下划线等。例如:a:link { color: blue; text-decoration: none; } 将未访问链接的颜色设置为蓝色且无下划线。...例如:a:visited { color: purple; } 将已访问链接的颜色设置为紫色。 a:active 作用:当链接被激活(点击但未释放鼠标按钮)时应用的样式。...二、通用伪类和伪元素 :hover 作用:当鼠标悬停在任何元素上时应用的样式,并非仅限于 元素。 应用场景广泛,可以为各种元素增加交互效果。...例如,当鼠标悬停在一个 div> 元素上时,可以改变其背景颜色或添加阴影。...如:div:hover { background-color: #f0f0f0; box-shadow: 2px 2px 5px gray; } ::before 和 ::after 作用:在任何元素的内容之前

    12010

    【动画进阶】极具创意的鼠标交互动画

    通俗一点就是上方图层的亮区将下方图层的颜色进行反相,暗区则将颜色正常显示出来,效果与原图像是完全相反的颜色。...并且,由于我们设置了 body 的颜色,所以在动画的一开始,伪元素白色的背景色与 body 的白色通过混合模式叠加直接变成了黑色。...利用 cursor 修改鼠标样式 cursor CSS 属性设置鼠标指针的类型,在鼠标指针悬停在元素上时显示相应样式。...,通过一句话概括,在整个鼠标元素移动的过程中,如果有悬停到任一元素上,则将外圈鼠标元素 #g-pointer-2 的大小及坐标更改,通过元素的高宽及 border-radius 变化实现视觉上的放大、缩小动画....g-animation 的元素上 let isHovering = false; // 判断元素是否悬停在具有类名为 .g-animation 的元素上 window.addEventListener

    27110

    基于HTML旅游网站项目的设计与实现——联途旅游网服务平台网站HTML模板HTML+CSS+JavaScript

    网站功能方面:计划实现各个页面之间的链接跳转功能、鼠标悬停在文字上的变色功能、简单的首页动态图片切换功能、简单的表单提交功能。...另外首页使用到的知识主要有图片插入、图片动态切换、导航条、利用CSS固定字体、文字大小、文字颜色、背景颜色。...(2)页面使用了DIV+CSS布局,使用到的知识主要有图片插入、导航条、利用CSS固定字体、文字大小、文字颜色、背景颜色。...(3)表单部分页面使用了DIV+CSS布局,使用到的知识主要有运用了form表单、input文本框和input提交按钮,完成表单信息收集。利用CSS设置input提交按钮文字大小和颜色。..." src="js/cas.js"> js/jquery.seajs.js" id="seajsnode

    2.8K30

    button标签和div模拟按钮的区别

    和button来写按钮就没什么太多的区别,只存在一些外观上和语义化的细微区别。...如果未指定属性,或者属性动态更改为空值或无效值,则此值为默认值。reset: 此按钮重置所有组件为初始值。button: 此按钮没有默认行为。它可以有与元素事件相关的客户端脚本,当事件出现时可触发。...在 HTML 里,除了div>和,基本上都是语义化的元素。...属性默认值类似于default,鼠标悬停在button上方为默认形式。...如果不给button设置background-color或border属性,则它存在一个默认的点击动画,鼠标点击时背景颜色或边框会动态变化以呈现出点击的动画效果,而div则不会,但是如果给button设置了

    21610

    html遮罩层样式,遮罩层样式

    使用了宽和高都为100%的iframe后,用了后会导致背景色和文字颜色等失效。...点击层关闭 在Flash动画中,遮罩主要有两种用途: 一个作用是用在整个场景或一个特定区域,使场景外的对象或特定区域外的对象不可见; 另一个作用是用来遮罩住某一元件的一部分… jquery.blockUI.js...cn/eg/eg11/zhuce.html 效果图: 源代码如下: quot… 网上收集到几个JS遮罩层效果,可以实现图片弹出、背景变色,类似于windows关机效果,具体的JS如下: 1.Thickbox...下面這個方法可以對某個定區域進行遮罩處理 /* begin遮罩层代码 /* 半透明的遮罩层 */ #overlay { background 解决弹出层定位滚动条scrollTop不兼容问题,即弹出层后滚动条不允许回到最上面,而是停在当前可见区域...解决applet覆盖遮罩层div的问题 当我们想用一个遮罩层div将整个页面罩住的时候,如果页面上使用了flash或者applet。

    4.7K10

    大学生网页制作期末作业——HTML+CSS+JavaScript制作成都旅游网页设计与实现12个页面 web前端课程设计代码 web课程设计 HTML网页制作代

    其中: (1)html文件包含:其中index.html是首页、其他html为二级页面; (2)css文件包含:css全部页面样式,文字滚动, 图片放大等; (3)js文件包含:js实现动态轮播特效,...点击事件等等(个别网页中运用到js代码)。...网站功能方面:计划实现各个页面之间的链接跳转功能、鼠标悬停在文字上的变色功能、简单的首页动态图片切换功能、简单的表单提交功能。...另外首页使用到的知识主要有图片插入、图片动态切换、导航条、利用CSS固定字体、文字大小、文字颜色、背景颜色。...(2)页面使用了DIV+CSS布局,使用到的知识主要有图片插入、导航条、利用CSS固定字体、文字大小、文字颜色、背景颜色。

    1.8K30

    CSS第二天

    ,p,span { css } 交集选择器 找同时满足多个选择器的元素 选择器之间紧挨着 p.mark { css } ⭕hover伪类选择器 选中鼠标悬停在元素上的状态 :hover a:hover...隔开 子代只包括:儿子 并集选择器:每组选择器可以是基础选择器或复合选择器,每组选择器通常一行写一个,提高代码的可读性 交集选择器:如果有标签选择器,标签选择器必须写在最前面 hover伪类:鼠标悬停在元素上的状态...) 文本居中 text-align___tac 文本缩进 text-indent___tl 文本修饰 text-decoration___tdn 背景颜色 background-color___bgc...网页端,后面我会添加,暂时放个空链接:点击进入 ---- 背景相关属性: 1️⃣背景颜色:background-color(bgc) 颜色默认值是透明,rgba(0,0,0,0) 、transparent...2️⃣背景图片:background-image(bgi) url中可以省略引号,图片默认水平和垂直方向平铺,类似于背景颜色,不能撑开盒子 3️⃣背景平铺:background-repeat(bgr)

    1.3K10

    旅游网页设计 web前端大作业 全球旅游私人订制 旅游公司网站模板(HTML+CSS+JavaScript)

    网站功能方面:计划实现各个页面之间的链接跳转功能、鼠标悬停在文字上的变色功能、简单的首页动态图片切换功能、简单的表单提交功能。...另外首页使用到的知识主要有图片插入、图片动态切换、导航条、利用CSS固定字体、文字大小、文字颜色、背景颜色。...(2)页面使用了DIV+CSS布局,使用到的知识主要有图片插入、导航条、利用CSS固定字体、文字大小、文字颜色、背景颜色。...(3)表单部分页面使用了DIV+CSS布局,使用到的知识主要有运用了form表单、input文本框和input提交按钮,完成表单信息收集。利用CSS设置input提交按钮文字大小和颜色。...-- Modernizr JS --> js/modernizr-2.6.2.min.js"> <!

    2K10

    纯CSS根据图片取色设置背景色

    韩国动漫视频网站截图.jpeg 前几天无意间访问到了个韩国的动漫视频站,然后看到个页面每个div背景色都不同疑似根据图片进行的取色,然后就想看看他是用什么js设置的,f12一看发现好像不是js,然后我就以为是写死的...background-position: center top; background-repeat: no-repeat; filter: brightness(0.9); } 分析 从代码里可以看到,实际上他就是用...来把图1设置成了背景,然后使用background-position: center top;让背景图x轴居中y轴靠上,然后再使用background-size: 20000%;将背景图放大200倍...,然后图片背景看起来就是纯颜色的了。...根据需求我们可以更改background-position的值,设置取色位置! linkCard('.post-content','0');

    1.3K10

    实战 HTML & CSS:如何快速搭建一个响应式博客首页

    cover.jpg" alt="logo"> div> div> 效果预览: 样式实现 导航栏样式 参考最终的样式,导航栏的样式分为3个点: 背景颜色; 导航文字居中展示.../* 圆角边框,半径为10像素 */ } .item { /* 设置单个项目(item)的背景颜色为浅蓝色 */ background-color: aqua; /* 背景颜色 */...*/ cursor: pointer; /* 鼠标悬停时显示手形光标 */ } .item:hover { /* 鼠标悬停在单个项目上的效果 */ color: darkgoldenrod...; /* 字体颜色变为暗金色 */ } .sidebar { /* 设置侧边栏的背景颜色为绿色 */ background-color: green; /* 背景颜色 */ /.../* 左侧内边距为10像素 */ cursor: pointer; /* 鼠标悬停时显示手形光标 */ } .item:hover { /* 鼠标悬停在单个项目上的效果

    14910

    如何遍历DOM

    href属性来更改链接的地址: navLink.href = 'https://github.com/qq449245884/xiaozhi'; 我们还可以通过textContent属性来更改文本内容:...识别节点类型 文档中的每个节点都有一个节点类型,可以通过nodeType属性访问该类型,更多节点类型大家可以到 MDN 上查看。下面是我们比较常见节点类型。...Node Type 值 描述 ELEMENT_NODE 1 一个 元素 节点,例如 和 div> TEXT_NODE 3 Element 或者 Attr 中实际的 文字 COMMENT_NODE...当用户将鼠标悬停在一个元素上,或单击一个元素,或按下键盘上的一个特定键时,这些都是事件类型。在这个特殊的例子中,我们希望我们的按钮侦听并准备在用户单击它时执行操作。...在 scripts.js中首先找到 button 元素,并监听一个 click 事件,在点击事件里面我们去更网页的背景颜色: let button = document.getElementById('

    9K30

    Word VBA实战应用:给文本添加屏幕提示

    标签:Word VBA 本文提供的Word VBA程序可以在Word中制作类似网站中的屏幕提示,即将鼠标悬停在特定文本上时显示包含相关信息的小框。...'如果指定的字符会包含在屏幕提示文本中, '那么将该字符更改为屏幕提示文本中不使用的字符....MsgBox Msg, vbOKOnly, Title Exit Sub End If '让用户指定屏幕提示文本 Retry: Msg = "本程序允许更改所选内容, 以便在用户将鼠标悬停在文本上时显示屏幕提示...此时,当用户将鼠标悬停在所选文本上时,输入的文本将显示在屏幕提示中。文本也应用了指定的背景色,以便于用户容易识别包含有屏幕提示的文本。...如果需要,可以更改程序中背景色的颜色。如果想将屏幕提示多行显示,可以在需要换行的地方输入换行符(示例中为“#”)。

    1.8K20
    领券