Сповіщення про завантаження автоматично закрити


153

Мені потрібно викликати сповіщення, коли натискаю кнопку Додати до списку бажань, і повинно зникнути сповіщення через 2 секунди. Це я намагався, але попередження зникає миттєво, як тільки воно з’являється. Не знаю, де ця помилка. Чи може мені хтось допомогти?

JS Script

$(document).ready (function(){
   $("#success-alert").hide();
   $("#myWish").click(function showAlert() {
      $("#success-alert").alert();
      window.setTimeout(function () { 
         $("#success-alert").alert('close'); 
      }, 2000);             
   });      
});

HTML-код:

<div class="product-options">
   <a id="myWish" href="" class="btn btn-mini">Add to Wishlist </a>
   <a href="#" class="btn btn-mini"> Purchase </a>
</div>

Поле сповіщення:

<div class="alert alert-success" id="success-alert">
   <button type="button" class="close" data-dismiss="alert">x</button>
   <strong>Success!</strong>
   Product have added to your wishlist.
</div>


Я спробував ці потоки .. але не впевнений, як реалізувати. : /
srikanth_naalla

Відповіді:


276

Для плавного слайду:

$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
    $("#success-alert").slideUp(500);
});

$(document).ready(function() {
  $("#success-alert").hide();
  $("#myWish").click(function showAlert() {
    $("#success-alert").fadeTo(2000, 500).slideUp(500, function() {
      $("#success-alert").slideUp(500);
    });
  });
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

<div class="product-options">
  <a id="myWish" href="javascript:;" class="btn btn-mini">Add to Wishlist </a>
  <a href="" class="btn btn-mini"> Purchase </a>
</div>
<div class="alert alert-success" id="success-alert">
  <button type="button" class="close" data-dismiss="alert">x</button>
  <strong>Success! </strong> Product have added to your wishlist.
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>


3
Не працює другий раз, коли ви натиснули кнопку. Через оповіщення ('закрити') Якщо ви використовуєте slideUp (), він працює @ICanHasKittenz
Fatih Alp

Діє прекрасно, але що це за рядок $ ("# успіх-попередження"). Alert (); використання? Я її зняв і теж працює.
Роберто Сепулведа Браво

1
@ RobertoSepúlvedaBravo - це надати функціональність тісного блоку для сповіщення, але ви маєте рацію, це не потрібно тут, оскільки ми використовуємо data-dimiss="alert" атрибут. Оновить сценарій.
АйБ

Не працювали для мене. Інші наведені нижче приклади працювали чудово, однак.
Terje Nesthus

@TerjeNesthus Чи можете ви пояснити, що саме не працювало? Попередження не ковзає вгору? Або не працює другий раз? Чи можу я знати версію вашого завантажувача? Це було призначено для Bootstrap 3, і я не перевіряв їх на пізніших версіях.
АйБ

56

Використання того, fadeTo()що зникає до непрозорості 500 за 2 секунди в коді "Я можу мати кошеня", для мене не читається. Я думаю, що краще використовувати інші параметри, такі як затримка ()

$(".alert").delay(4000).slideUp(200, function() {
    $(this).alert('close');
});

42

Чому всі інші відповіді використовують slideUp, просто поза мною. Оскільки я використовую fadeі inкласи, щоб попередження зникало, коли воно закрите (або після закінчення тайм-ауту), я не хочу, щоб воно «ковзало вгору» і суперечило цьому.

До того ж slideUpметод навіть не спрацював. Саме сповіщення взагалі не з’являлось. Ось що для мене чудово працювало:

$(document).ready(function() {
    // show the alert
    setTimeout(function() {
        $(".alert").alert('close');
    }, 2000);
});

1
Короткий і солодкий
Nawaraj

21

Я вважав це кращим рішенням

$(".alert-dismissible").fadeTo(2000, 500).slideUp(500, function(){
    $(".alert-dismissible").alert('close');
});

11

ще одне рішення для цього Автоматично закрити або згасати повідомлення попереднього завантаження через 5 секунд:

Це HTML-код, який використовується для відображення повідомлення:

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

<div class="alert alert-danger">
This is an example message...
</div>


<script type="text/javascript">

$(document).ready(function () {
 
window.setTimeout(function() {
    $(".alert").fadeTo(1000, 0).slideUp(1000, function(){
        $(this).remove(); 
    });
}, 5000);
 
});
</script>


Це дуже приємна відповідь, оскільки вона не обмежується відображенням повідомлення tru JS, повідомлення вже може відображатися при завантаженні сторінки.
Гільєрмо Орамас Р.

1
$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
    $("#success-alert").alert('close');
});

Де параметри fadeTo - fadeTo (швидкість, непрозорість)


1

Тигрів автоматично і вручну, коли це потрібно

$(function () {
    TriggerAlertClose();
});

function TriggerAlertClose() {
    window.setTimeout(function () {
        $(".alert").fadeTo(1000, 0).slideUp(1000, function () {
            $(this).remove();
        });
    }, 5000);
}

0

Це хороший підхід для показу анімації в і виходу за допомогою jQuery

  $(document).ready(function() {
      // show the alert
      $(".alert").first().hide().slideDown(500).delay(4000).slideUp(500, function () {
         $(this).remove(); 
      });
  });

0

Контролер C #:

var result = await _roleManager.CreateAsync(identityRole);
   if (result.Succeeded == true)
       TempData["roleCreateAlert"] = "Added record successfully";

Сторінка бритви:

@if (TempData["roleCreateAlert"] != null)
{
    <div class="alert alert-success">
        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
        <p>@TempData["roleCreateAlert"]</p>
    </div>
}

Будь-яке автоматичне закриття:

<script type="text/javascript">
    $(".alert").delay(5000).slideUp(200, function () {
        $(this).alert('close');
    });
</script>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.