添加' x'用onclick按钮边框的颜色

时间:2018-05-03 00:44:05

标签: javascript jquery css

我实际上是想在' x'中添加一种颜色到我的边框按钮的一部分。倍。到目前为止,我设法通过我的第一个click函数获得了我的初始边界。现在我想在边框的一半,1 / 3,1 / 4 ......上修改颜色。

我正在寻找的原则是:每次,我都会点击按钮,它会添加一个" lvl"到按钮。并表明,修改一下边框。最后一个" lvl"会填补边界。

我有两个问题。第1,除了使用border-top-colorborder-left-colorborder-right-colorborder-bottom-color之外,我找不到分割颜色填充的解决方案,这限制了我到季度只要。

我也可以使用:after:before来改变它们,但似乎我在那些方面苦苦挣扎。

第二,似乎我在第一个上复制的第二个js功能并不起作用。我认为这是因为var声明。我知道skill_unlocked类不是直接写在我的HTML代码中,而只是在之后添加。它会阻止启动功能吗?

编辑:我尝试使用

修改js
if document.getElementsByClassName("btn").hasClass("skill_unlocked") {
document.getElementsByClassName("skill_unlocked").addEventListener("click", function() {
 this.classList.add("skill_lvl_1");
});

似乎取消了第一个功能。



var buttons = document.getElementsByClassName("btn");

for (var i = 0; i < buttons.length; i++) {
  document.getElementsByClassName("btn")[i].addEventListener("click", function() {
    this.classList.add("skill_unlocked");
  });
}

/* WORKS TOO (SIMPLIFIED METHOD?)
$(document).on('click', '.btn', function() {
  $(this).addClass('skill_unlocked');
}); */

var skill_unlocked = document.getElementsByClassName("skill_unlocked");

for (var i = 0; i < skill_unlocked.length; i++) {
  document.getElementsByClassName("skill_unlocked")[i].addEventListener("click", function() {
    this.classList.add("skill_lvl_1");
  });
} 
&#13;
body {
  background-color: #575757;
}

.btn {
  margin: 10px;
  display: block;
  opacity: 0.6;
  border: hidden;
  background-color: grey;
  border-radius: 50%;
  cursor: pointer;
  height: 70px;
  width: 70px;
  outline: none;
}

.btn:hover {
  opacity: 0.9;
  background-color: #2B2B2B;
}

.fas {
  font-size: 28px;
}

.skill_unlocked {
  border: 2px solid white;
  opacity: 1;
  background-color: #2B2B2B;
}

.skill_lvl_1 {
  border: 2px solid;
  opacity: 1;
  background-color: #2B2B2B;
  border-top-color:green;
}
&#13;
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <link rel="stylesheet" type="text/css" href="button border.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" integrity="sha384-+d0P83n9kaQMCwj8F4RJB66tzIwOKmrdb46+porD/OvrJ+37WqIM7UoBtwHO6Nlg" crossorigin="anonymous">
</head>

<body>

  <button class="btn"><i class=" fas fa-shipping-fast fa-inverse"></i></button>
  <button class="btn"><i class=" fas fa-address-card fa-inverse"></i></button>
  <button class="btn"><i class=" fas fa-camera-retro fa-inverse"></i></button>
  <button class="btn"><i class="fas fa-flag fa-inverse"></i></button>
  <button class="btn"></button>
  
  <script type="text/javascript" src="button border.js"></script>

</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

我假设您想要在白色边框后为每次点击为右上角机器人左边框(按此顺序)着色,如果是,那么您可以检查此代码

I liked TAG:{Destiny2,the last Destiny game}, now I play TAG{Fortnite,Fortnite} is TAG:{Destiny:Destiny}
body {
  background-color: #575757;
}

.btn {
  margin: 10px;
  display: block;
  opacity: 0.6;
  border: hidden;
  background-color: grey;
  border-radius: 50%;
  cursor: pointer;
  height: 70px;
  width: 70px;
  outline: none;
}

.btn:hover {
  opacity: 0.9;
  background-color: #2B2B2B;
}

.fas {
  font-size: 28px;
}

.skill_unlocked {
  border: 2px solid white;
  opacity: 1;
  background-color: #2B2B2B;
}

.skill_lvl_1 {
  border: 2px solid;
  opacity: 1;
  background-color: #2B2B2B;
  border-top-color:green;
}

.skill_lvl_2 {
  border: 2px solid;
  opacity: 1;
  background-color: #2B2B2B;
  border-top-color:green;
  border-right-color:green;
}

.skill_lvl_3 {
  border: 2px solid;
  opacity: 1;
  background-color: #2B2B2B;
  border-top-color:green;
  border-right-color:green;
  border-bottom-color:green;
}
.skill_lvl_4 {
  border: 2px solid;
  opacity: 1;
  background-color: #2B2B2B;
  border-top-color:green;
  border-right-color:green;
  border-bottom-color:green;
  border-left-color:green;
}

我希望这就是你想做的事情