Моя функция fadeOut (анимация) не работает - PullRequest
0 голосов
/ 10 июня 2018

У меня проблема здесь;

$("#anan").click(function(){
    $("input[type='text']").fadeToggle();
});

Я бы хотел, чтобы окно ввода исчезло и появилось с эффектом затухания.В настоящее время он только появляется и исчезает без эффекта затухания.Может кто-нибудь помочь мне, почему он не исчезает?

Примечание: в предварительном просмотре он даже не исчезает / появляется по какой-то причине, но когда я на самом деле запускаю HTML в Chrome, он работает нормально, за исключением анимации затухания.

$("ul").on("click", "li", function() {
  $(this).toggleClass("completed");


});


$("ul").on("click", "span", function(event) {

  $(this).parent().fadeOut(500, function() {
    $(this).remove();
  });

  event.stopPropagation();

})

$("input[type ='text']").on("keypress", function(event) {
  if (event.which === 13) {
    var inputtext = $(this).val();
    $(this).val("");
    $("ul").append("<li><span><i class='fas fa-trash'></i></span> " + inputtext + "</li>")
  }



})


$("#anan").click(function() {
  $("input[type='text']").fadeToggle();
});
h1 {
  background: #2980b9;
  color: white;
  margin: 0;
  padding: 10px 20px;
  text-transform: uppercase;
  font-size: 24px;
  font-weight: normal;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fa-plus {
  float: right;
}

body {
  background: #ff6e7f;
  /* fallback for old browsers */
  background: -webkit-linear-gradient(to right, #bfe9ff, #ff6e7f);
  /* Chrome 10-25, Safari 5.1-6 */
  background: linear-gradient(to right, #bfe9ff, #ff6e7f);
  /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  font-family: Roboto;
}

li {
  background: #fff;
  height: 40px;
  line-height: 40px;
  color: #666;
}

input {
  font-size: 18px;
  color: #2980b9;
  background-color: #f7f7f7;
  width: 100%;
  box-sizing: border-box;
  padding: 13px 13px 13px 20px;
  border: 3px solid rgba(0, 0, 0, 0);
}

input:focus {
  background: #fff;
  border: 3px solid #2980b9;
  outline: none;
}

li:nth-child(2n) {
  background: #f7f7f7;
}

li span {
  background: #e74c3c;
  height: 40px;
  margin-right: 20px;
  text-align: center;
  color: white;
  width: 0;
  display: inline-block;
  transition: 0.2s linear;
  opacity: 0;
}

li:hover span {
  width: 40px;
  opacity: 1.0;
}

#container {
  width: 360px;
  margin: 100px auto;
  background: #f7f7f7;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
}

.completed {
  color: gray;
  text-decoration: line-through;
}
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>ToDo List App</title>
  <script type="text/javascript" src="assets/js/lib/jquery-3.3.1.min.js">
  </script>
  <link rel="stylesheet" type="text/css" href="assets/css/styles.css">
  <link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">

</head>

<body>

  <div id="container">
    <h1>To-Do List <span id="anan"><i class="fas fa-plus"></i></span></h1>
    <input type="text">

    <ul>
      <li><span><i class="fas fa-trash"></i></span> Go to Potions Class</li>
      <li><span><i class="fas fa-trash"></i></span> Buy new robes</li>
      <li><span><i class="fas fa-trash"></i></span> Visit anan</li>

    </ul>







  </div>


  <script type="text/javascript" src="assets/js/mycustom.js">
  </script>
</body>

</html>

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

в нашем коде вы не включили jquery, и в вашем css фоном текстового поля является # f5f5f5, который совпадает с фоновым. Так что вам нужно изменить цвет фона текстового поля, чтобы увидеть эффект затухания.Например, вы можете установить красный для тестирования.В JS вы должны указать параметры на fadeToggle

$("input[type='text']").fadeToggle("2000", "linear");

Здесь 2000 означает 2 секунды.Вы можете увеличить, как вы хотите.Для более подробной информации вы должны проверить документ на http://api.jquery.com/fadetoggle/

Я редактировал на codepen: https://codepen.io/hirakumar/pen/aKpQNN?editors=0001

0 голосов
/ 10 июня 2018

Вам не хватает скрипта JQuery:

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

$("ul").on("click", "li", function(){
  $(this).toggleClass("completed");


}
);


$("ul").on("click", "span", function(event){

  $(this).parent().fadeOut(500, function(){
    $(this).remove();
  });

  event.stopPropagation();

}
)

$("input[type ='text']").on("keypress", function(event){
  if(event.which === 13) {
    var inputtext = $(this).val();
    $(this).val("");
    $("ul").append("<li><span><i class='fas fa-trash'></i></span> "+ inputtext + "</li>")
  }



})


$("#anan").click(function(){
	$("input[type='text']").fadeToggle();
});
h1 {

  background: #2980b9;
  color:white;
  margin: 0;
  padding: 10px 20px;
  text-transform: uppercase;
  font-size: 24px;
  font-weight: normal;

}

ul {
  list-style: none;
  margin: 0;
  padding: 0;

}
.fa-plus{
  float:right;
}

body {
  background: #ff6e7f;  /* fallback for old browsers */
background: -webkit-linear-gradient(to right, #bfe9ff, #ff6e7f);  /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #bfe9ff, #ff6e7f); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */

  font-family: Roboto;
}
li {
  background: #fff;
  height: 40px;
  line-height: 40px;
  color: #666;

}

input {
  font-size: 18px;
  color: #2980b9;
  background-color: #f7f7f7;
  width: 100%;
  box-sizing: border-box;
  padding: 13px 13px 13px 20px;
  border: 3px solid rgba(0,0,0, 0);
}

input:focus{
  background: #fff;
  border: 3px solid #2980b9;
  outline: none;
}

li:nth-child(2n){
  background: #f7f7f7;
}
li span {
  background: #e74c3c;
  height: 40px;
  margin-right: 20px;
  text-align: center;
  color: white;
  width: 0;
  display: inline-block;
  transition: 0.2s linear;
  opacity: 0;
}

li:hover span {
  width: 40px;
  opacity: 1.0;
}


#container {

  width: 360px;
  margin: 100px auto;

  background: #f7f7f7;
  box-shadow: 0 0 3px rgba(0,0,0, 0.1);


}


.completed {
  color: gray;
  text-decoration: line-through;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <link rel="stylesheet" type="text/css" href="assets/css/styles.css">
    <link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
    <div id="container">
      <h1>To-Do List <span id="anan"><i class="fas fa-plus"></i></span></h1>
      <input type="text">

      <ul>
        <li><span><i class="fas fa-trash"></i></span> Go to Potions Class</li>
        <li><span><i class="fas fa-trash"></i></span> Buy new robes</li>
        <li><span><i class="fas fa-trash"></i></span> Visit anan</li>

      </ul>
     </div>

    <script type="text/javascript" src="assets/js/mycustom.js">

    </script>
...