首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动后用div更新鼠标交互

移动后用div更新鼠标交互
EN

Stack Overflow用户
提问于 2022-03-15 10:52:56
回答 1查看 48关注 0票数 0

在我正在构建的一个网站中,我有一个带有“悬停”动画的按钮,当您单击该按钮时,页面上的很多东西都会移动,包括按钮的移动。我的问题是,即使在按钮从鼠标下面移出后,它也不会更新和丢失它的:悬停效果,直到您再次移动鼠标。

这里有一个例子--一旦你点击按钮,它就会保持浅蓝色(悬停的颜色),直到你再次移动鼠标。

代码语言:javascript
复制
function clicked() {
  if (document.getElementById('mydiv').style.transform == 'translateY(70px)') {
    document.getElementById('mydiv').style.transform = 'translateY(0px)';
  } else {
    document.getElementById('mydiv').style.transform = 'translateY(70px)';
  }
};
代码语言:javascript
复制
div {
  background-color: #fedcba;
  padding: 20px;
  display: inline-block;
}
div:hover {
  background-color: #abcdef;
}
代码语言:javascript
复制
<div id="mydiv" onclick="clicked();">Click me</div>

如何使元素更新而不需要用户再次移动鼠标?JQuery没事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-15 11:29:32

我认为用您当前的CSS方法,您将无法处理这一点。尝试另一种JavaScript方法:

代码语言:javascript
复制
const el = document.getElementById('mydiv');

el.addEventListener('click', () => {
  if(el.style.transform == 'translateY(50px)') {
    el.style.transform = 'translateY(0px)';
  } else {
    el.style.transform = 'translateY(50px)';
  }
  el.style.background = "#fedcba";
});

el.addEventListener('mouseover', () => {
  el.style.background = "#abcdef";
});

el.addEventListener('mouseout', () => {
  el.style.background = "#fedcba";
});
代码语言:javascript
复制
div {
  background: #fedcba;
  padding: 20px;
  display: inline-block;
}
代码语言:javascript
复制
<div id="mydiv">Click me</div>

如果您将“悬停”解压到JS代码中,那么您可以更新元素的状态,而无需移动鼠标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71481000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档