当鼠标悬停在链接上时,如何反转整个页面的颜色。

18 浏览
0 Comments

当鼠标悬停在链接上时,如何反转整个页面的颜色。

当我在菜单中悬停在特定链接上时,我想要将整个页面的颜色反转(文字、图片、背景)。就像通过悬停在按钮上预览深色模式一样。我知道可以使用css的filter: invert(100%);来反转颜色,但不确定如何使用CSS使整个页面在悬停时反转。谢谢任何帮助!

0
0 Comments

如何在悬停在链接上时反转整个页面的颜色

要实现您想要的效果,您需要使用Javascript。

思路是当鼠标悬停在链接上(onmouseover事件)时,在body元素上应用一个带有filter: invert(1);属性的类,并在鼠标离开时(onmouseleave事件)将其删除:

const invertLink = document.querySelector('#invert');
const toggleDark = () => document.querySelector('body').classList.toggle('dark');
invertLink.addEventListener('mouseover', toggleDark);
invertLink.addEventListener('mouseleave', toggleDark);

.dark {
  filter: invert(1);
  background: black;
}


  

Hello World

Hover me!

以上是实现的方法,您需要使用Javascript来监听鼠标悬停和离开事件,并在这些事件发生时切换body元素的类。当鼠标悬停在链接上时,将应用一个名为"dark"的类,该类具有filter: invert(1);属性,从而反转页面的颜色。当鼠标离开链接时,将删除该类,恢复页面的原始颜色。

通过以上的代码和步骤,您可以实现在悬停在链接上时反转整个页面的颜色。

0