Как отобразить всплывающее уведомление пользователю с помощью jquery? - PullRequest
19 голосов
/ 28 июня 2011

Я занимаюсь разработкой приложения, которое требует, чтобы пользователь был уведомлен о некоторых фоновых событиях, например, приглашение от другого пользователя, время ожидания напоминания и т. Д.

Всякий раз, когда происходит событие, контроллер получает уведомление, и пользователю должно отображаться небольшое окно.

Как мне поступить, чтобы достичь этого. Какая технология / инструмент поможет мне. Я использую jQuery, JSF 2.0 и Spring 3.0.

Ответы [ 4 ]

24 голосов
/ 28 июня 2011

это даст уведомление, похожее на stackoverflow

JQuery

$("#notification").fadeIn("slow").append('your message');
$(".dismiss").click(function(){
       $("#notification").fadeOut("slow");
});

HTML

<div id="notification" style="display: none;">
  <span class="dismiss"><a title="dismiss this notification">x</a></span>
</div>

CSS

#notification {
    position:fixed;
    top:0px;
    width:100%;
    z-index:105;
    text-align:center;
    font-weight:normal;
    font-size:14px;
    font-weight:bold;
    color:white;
    background-color:#FF7800;
    padding:5px;
}
#notification span.dismiss {
    border:2px solid #FFF;
    padding:0 5px;
    cursor:pointer;
    float:right;
    margin-right:10px;
}
#notification a {
    color:white;
    text-decoration:none;
    font-weight:bold
}

Также взгляните на ответ mplungjan о том, как прослушивать обновления сервера и загрузку сообщений

2 голосов
/ 28 июня 2011

Используя код из @ предложения Ану - моя скрипка , вы можете просто добавить опрос

$(document).ready(function() {
  $(".dismiss").click(function(){$("#notification").fadeOut("slow");});

  setInterval(function() {
    $.get("ping.jsp?userid=<%= userID %>",function(message) {
      if (message) $("#notification").fadeIn("slow").html(message);
    });
   ,10000);
})

сообщение может содержать отметку времени, чтобы увидеть, если вы уведомили ранее вместо отправкипустое сообщение, если уведомление не требуется

Альтернативы: Длинный опрос или Комета

1 голос
/ 28 июня 2011

HTML:

<input type="button" id="pop" value="Submit"/>
<div id="popup">
  <div id="topbar"> TITLE..</div>
  <div id="content">Here is you content...</div>
  <input type="button" id="ok" value="OK"/>
</div>

CSS:

#popup { background:#ccc; -moz-border-radius: 10px; width:300px; height: 200px; padding: 5px; position: absolute; left: 50%; margin-left: -150px; z-index: 500; display:none }
#topbar { background:#ddd; -moz-border-radius: 10px; padding:5px; height:20px; line-height:20px }
#content { padding:5px; -moz-border-radius: 10px; text-align:center }
#ok { position: absolute; left: 140px; top: 180px }

JQUERY:

$(function(){
    $('#pop').click(function(){
        $('#popup').fadeIn().css('top',$(document).height()/2);
    });
    $('#ok').click(function(){
        $('#popup').fadeOut();
    });
});
1 голос
/ 28 июня 2011

JQuery UI диалог - это то, что вы ищете. Это пригодится вам. Хотя есть много других доступных плагинов. Это самое простое ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...