如果元素具有焦点,如何删除悬停效果?

时间:2015-09-16 20:14:02

标签: javascript jquery css hover focus

我正在尝试将悬停和焦点效果添加到输入框中。

悬停时,框轮廓将为绿色。

在焦点上,方框轮廓将为蓝色。

目前我碰到了一个凹凸,如果输入框有焦点,它会变成蓝色,但如果我将鼠标悬停在它上面,它会变为绿色。

我想阻止该框启动“悬停”。如果框具有焦点,则会生效。

CSS:

input[type=text],
textarea {
  -webkit-transition: all 0.30s ease-in-out;
  -moz-transition: all 0.30s ease-in-out;
  -ms-transition: all 0.30s ease-in-out;
  -o-transition: all 0.30s ease-in-out;
  outline: none;
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
  border: 1px solid #DDDDDD;
}
input[type=text]:focus,
textarea:focus {
  box-shadow: 0 0 5px rgba(81, 203, 238, 1);
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
  border: 1px solid rgba(81, 203, 238, 1);
}
input[type=text]:hover,
textarea:hover {
  box-shadow: 0 0 5px rgba(46, 255, 138, 1);
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
  border: 1px solid rgba(46, 255, 138, 1);
}

如何在输入框有焦点时阻止悬停效果执行?

谢谢!

1 个答案:

答案 0 :(得分:3)

效果优先于你放置它们的顺序,所以如果你像这样放置它们,它应该可以工作

input[type=text],
textarea {
  -webkit-transition: all 0.30s ease-in-out;
  -moz-transition: all 0.30s ease-in-out;
  -ms-transition: all 0.30s ease-in-out;
  -o-transition: all 0.30s ease-in-out;
  outline: none;
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
  border: 1px solid #DDDDDD;
}

input[type=text]:hover,
textarea:hover {
  box-shadow: 0 0 5px rgba(46, 255, 138, 1);
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
  border: 1px solid rgba(46, 255, 138, 1);
}
input[type=text]:focus,
textarea:focus {
  box-shadow: 0 0 5px rgba(81, 203, 238, 1);
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
  border: 1px solid rgba(81, 203, 238, 1);
}