点击元素后保持悬停样式的有效性

5
我正在制作选择面板,但其中一个方面令我困扰。这里有九个框,我希望用户能够点击框,并且当点击时,鼠标悬停的格式保持不变,并在框的边界理想地添加某种勾号或其他标记。我完全不知道如何使鼠标移开后,框的悬停字体效果保持不变。
请问是否有人知道我该如何做到这一点?

#project-scope-container {
 margin-top: 70px;
 margin-left: 9%;
 width: 75%;
 height: 300px;
}
#project-scope-title {
 font-size: 1.2em;
 font-weight: bold;
 margin-bottom: 15px;
}
.project-option-boxes {
 display: inline-block;
 border: 1px solid #45ba95;
 padding: 20px 0px;
 margin: 12px 20px 12px 0px;
 width: 30%;
 text-align: center;
 font-size: 1.2em;
 color: #45ba95;
 cursor: pointer;
}
.project-option-boxes:hover {
 background-color: #45ba95;
 color: #FFF;
}
<div id="project-scope-container">
  <div id="project-scope-title">PROJECT SCOPE</div>
  <div class="project-option-boxes">BRANDING & IDENTITY</div>
  <div class="project-option-boxes">WEB DESIGN</div>
  <div class="project-option-boxes">RESPONSIVE/MOBILE</div>
  <div class="project-option-boxes">MARKETING ASSETS</div>
  <div class="project-option-boxes">HTML5 ANIMATION</div>
  <div class="project-option-boxes">SEO OPTIMIZATION</div>
  <div class="project-option-boxes">MONTHLY SUPPORT</div>
  <div class="project-option-boxes">WEB DEVELOPMENT</div>
  <div class="project-option-boxes">ECOMMERCE</div>
 </div>

3个回答

2
创建另一个类名,当鼠标悬停时保持相同的css样式,并将这些类添加到点击的元素中,或者像以下示例一样使用toggleClass

$('.project-option-boxes').click(function() {
  $(this).hide().toggleClass('box_focused').fadeIn('slow');
});
#project-scope-container {
  margin-top: 70px;
  margin-left: 9%;
  width: 75%;
  height: 300px;
}
#project-scope-title {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 15px;
}
.project-option-boxes {
  display: inline-block;
  border: 1px solid #45ba95;
  padding: 20px 0px;
  margin: 12px 20px 12px 0px;
  width: 30%;
  text-align: center;
  font-size: 1.2em;
  color: #45ba95;
  cursor: pointer;
}
.project-option-boxes:hover {
  background-color: #45ba95;
  color: #FFF;
}
.box_focused {
  background-color: #45ba95;
  background-image : url("http://findicons.com/files/icons/2232/wireframe_mono/48/checkbox_checked.png");
  background-position: right top;
  background-repeat: no-repeat;
  color: #FFF;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="project-scope-container">
  <div id="project-scope-title">PROJECT SCOPE</div>
  <div class="project-option-boxes">BRANDING & IDENTITY</div>
  <div class="project-option-boxes">WEB DESIGN</div>
  <div class="project-option-boxes">RESPONSIVE/MOBILE</div>
  <div class="project-option-boxes">MARKETING ASSETS</div>
  <div class="project-option-boxes">HTML5 ANIMATION</div>
  <div class="project-option-boxes">SEO OPTIMIZATION</div>
  <div class="project-option-boxes">MONTHLY SUPPORT</div>
  <div class="project-option-boxes">WEB DEVELOPMENT</div>
  <div class="project-option-boxes">ECOMMERCE</div>
</div>


当该类处于活动状态时,我如何在框内添加图像? - Paul
@Paul 把图片设为背景并设置其位置。 - Norlihazmey Ghazali
那么,在 .box_focused 中添加图片作为 background-img - Paul
另外,我正在尝试将 fadeIn 添加到这个 jQuery 中,但是无法正确实现。我做错了什么?$('.project-option-boxes').click(function() { $(this).toggleClass.fadeIn.('box_focused'); }); - Paul
还有针对fadeIn的部分。希望这能帮到你,伙计。 - Norlihazmey Ghazali

1
你可以创建一个与hover相同风格的类,当点击一个框时,你可以将此类添加到该框中。
.project-option-boxes.active {
  background-color: #45ba95;
  color: #FFF;
}

并将该类应用于盒子中,

$(document).on('click', 'project-option-boxes', function (e) {
  $(this).toggleClass('active');
}

1
您可以使用JQuery并使用.hover.addClass()来使用以下示例:

$(".project-option-boxes").hover(function()
{
  $(this).addClass("active");
});
#project-scope-container {
 margin-top: 70px;
 margin-left: 9%;
 width: 75%;
 height: 300px;
}
#project-scope-title {
 font-size: 1.2em;
 font-weight: bold;
 margin-bottom: 15px;
}
.project-option-boxes {
 display: inline-block;
 border: 1px solid #45ba95;
 padding: 20px 0px;
 margin: 12px 20px 12px 0px;
 width: 30%;
 text-align: center;
 font-size: 1.2em;
 color: #45ba95;
 cursor: pointer;
}
.project-option-boxes:hover {
 background-color: #45ba95;
 color: #FFF;
}

.active {
  background: #45ba95;
  color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="project-scope-container">
  <div id="project-scope-title">PROJECT SCOPE</div>
  <div class="project-option-boxes">BRANDING & IDENTITY</div>
  <div class="project-option-boxes">WEB DESIGN</div>
  <div class="project-option-boxes">RESPONSIVE/MOBILE</div>
  <div class="project-option-boxes">MARKETING ASSETS</div>
  <div class="project-option-boxes">HTML5 ANIMATION</div>
  <div class="project-option-boxes">SEO OPTIMIZATION</div>
  <div class="project-option-boxes">MONTHLY SUPPORT</div>
  <div class="project-option-boxes">WEB DEVELOPMENT</div>
  <div class="project-option-boxes">ECOMMERCE</div>
 </div>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接