2009-03-18 36 views
103

Tôi muốn thêm thông báo bật lên như tin nhắn xuất hiện trên Stack Overflow khi tôi không đăng nhập và tôi cố gắng sử dụng các nút biểu quyết.Cách hiển thị thông báo bật lên như trong Ngăn xếp ngăn xếp

Phương pháp tốt nhất để đạt được điều đó là gì? Được thực hiện bằng thư viện jquery?

+16

Xem nguồn! –

+8

tôi đã làm điều đó, và nó dường như đề cập đến question.min.js Tôi không thể tìm thấy plugin đó vì vậy tôi đã hỏi câu hỏi – Puneet

+0

Dojo có một UpgradeBar thực hiện điều này: http://trac.dojotoolkit.org/browser/branches /1.6/dojox/widget/UpgradeBar.js http://trac.dojotoolkit.org/browser/branches/1.6/dojox/widget/UpgradeBar – mwilcox

Trả lời

4

tôi sử dụng jqModal, dễ sử dụng và bạn có thể đạt được một số hiệu ứng tuyệt vời

4

Sử dụng ModalPopup trong bộ công cụ kiểm soát AJAX là một cách khác để bạn có thể nhận được hiệu ứng này.

+1

xin vui lòng bình luận các downvote, bằng cách sử dụng một popup phương thức là hoàn toàn hợp lệ cho những gì câu hỏi ban đầu được hỏi. – patjbs

153

EDIT: Mã bên dưới cho biết cách sao chép các thanh hiển thị ở đầu màn hình khi bạn nhận được huy hiệu mới, trước tiên hãy truy cập trang web, v.v. để nhận xét quá nhanh, hãy bỏ phiếu cho câu hỏi của riêng bạn, v.v. hãy xem this question nơi tôi thể hiện cách thực hiện việc này hoặc chỉ cần đi thẳng đến số example.


Sau đây là cách Stackoverflow làm nó:

Đây là đánh dấu, ban đầu ẩn vì vậy chúng tôi có thể dần giảm âm trong:

<div id='message' style="display: none;"> 
    <span>Hey, This is my Message.</span> 
    <a href="#" class="close-notify">X</a> 
</div> 

Dưới đây là những phong cách áp dụng:

#message { 
    font-family:Arial,Helvetica,sans-serif; 
    position:fixed; 
    top:0px; 
    left:0px; 
    width:100%; 
    z-index:105; 
    text-align:center; 
    font-weight:bold; 
    font-size:100%; 
    color:white; 
    padding:10px 0px 10px 0px; 
    background-color:#8E1609; 
} 

#message span { 
    text-align: center; 
    width: 95%; 
    float:left; 
} 

.close-notify { 
    white-space: nowrap; 
    float:right; 
    margin-right:10px; 
    color:#fff; 
    text-decoration:none; 
    border:2px #fff solid; 
    padding-left:3px; 
    padding-right:3px 
} 

.close-notify a { 
    color: #fff; 
} 

Và đây là javascript (sử dụng jQuery):

$(document).ready(function() { 
    $("#message").fadeIn("slow"); 
    $("#message a.close-notify").click(function() { 
     $("#message").fadeOut("slow"); 
     return false; 
    }); 
}); 

Và thì đấy. Tùy thuộc vào thiết lập trang của bạn, bạn cũng có thể muốn chỉnh sửa lề trên của phần thân trên màn hình.

Here is a demo of it in action.

+3

Đọc lại câu hỏi Tôi không nghĩ đây là điều mà Op muốn. Tôi nghĩ anh ấy đang tìm kiếm các hộp xuất hiện dưới dạng thông báo xung quanh trang web gần bất cứ điều gì bạn làm. Tôi đoán tôi sẽ để nó lên. –

+0

Paolo, Cảm ơn vì đã bỏ cuộc này! Tôi nghĩ rằng điều này có thể làm việc tốt hơn một chút so với những gì tôi đã sử dụng cho hành động này. – Jayrox

+3

Trong khi không phải là câu trả lời, cũng không kém phần hữu ích: P – rball

3

Dưới đây là những gì tôi tìm thấy từ xem nguồn StackOverflow. Hy vọng sẽ tiết kiệm thời gian cho ai đó. Chức năng showNotification được sử dụng cho tất cả các tin nhắn bật lên đó.

var showNotification=function(jClicked,msg){master.showErrorPopup(jClicked.parent(),msg)}; 
var showFadingNotification=function(jClicked,msg){master.showErrorPopup(jClicked.parent(),msg,true)}; 

//master... 
showErrorPopup: function (e, h, f) { 
    var g = $('<div class="error-notification supernovabg"><h2>' + h + "</h2>" + (f ? "" : "(click on this box to dismiss)") + "</div>"); 
    var i = function() { 
     g.fadeOutAndRemove() 
    }; 
    $(e).append(g); 
    g.click(i).fadeIn("fast"); 
    setTimeout(i, (f ? Math.max(2500, h.length * 40) : 1000 * 30)) 
} 

css

.error-notification{z-index:1;cursor:pointer;display:none;position:absolute;padding:15px;-moz-box-shadow:2px 2px 5px #000;-webkit-box-shadow:2px 2px 5px #000;box-shadow:2px 2px 5px #000;} 
.error-notification a{color:inherit;text-decoration:underline;} 
.error-notification li{font-size:110%;padding-top:3px;} 
.supernovabg{color:#fff !important;background-color:#fe7a15 !important;} 

Đó là mát mẻ cách họ sử dụng độ dài của tin nhắn để đặt thời gian chờ mờ dần. Tôi đã không nhận ra tất cả các thông điệp (không phai màu) thực sự mờ dần sau 30 giây.

0

Kiểm tra bootstrap. Có một số hiệu ứng bật lên, phương thức, chuyển tiếp, cảnh báo, mọi thứ dựa trên javascriptcss.

Các vấn đề liên quan