Hiển thị các thông báo thân thiện hơn với toastr
Có thể bạn thấy việc hiển thị thông báo với bosstrap là khá nhàm chán, bạn cần một thư việc khác hiển thị thông báo một cách sinh động hơn. Toastr là một lựa chọn rất tốt bạn có thể thử và trải nghiệm. toastr là một thư viện Javascript dùng cho việc hiển thị các thông báo một cách độc lập. Để sự ...
Có thể bạn thấy việc hiển thị thông báo với bosstrap là khá nhàm chán, bạn cần một thư việc khác hiển thị thông báo một cách sinh động hơn. Toastr là một lựa chọn rất tốt bạn có thể thử và trải nghiệm. toastr là một thư viện Javascript dùng cho việc hiển thị các thông báo một cách độc lập. Để sự dụng toastr việc đầu tiên trang web của bạn cần có Jquery.
Việc cài đặt toastr khá đơn giản
Nếu bạn dùng bower bạn chỉ cần cài thêm gói toastr là đủ
bower install toastr
Tương tự với npm
npm install --save toastr
Nếu bạn dùng Rails bạn có thể dùng gem toastr-rails cũng khá đơn giản
# Gemfile gem 'toastr-rails'
# application.coffee #= require toastr
// application.scss @import "toastr";
Sử dụng toastr
Như vậy ta đã xong việc cài đặt. Giờ ta đi vào việc sử dụng toastr
Toastr hỗ trợ bạn hiển thị 4 loại message thông báo thông thường là Success, Info, Warning và Error
Ví dụ
// Hiển thị thông báo loại warning không có tiêu đề (title) toastr.warning('Nội dung thông báo') // Hiển thị thông báo loại success không có tiêu đề (title) toastr.success('Nội dung thông báo', 'title') // Hiển thị thông báo loại error toastr.error('Nội dung lỗi.', 'Gặp lỗi!') // Hiển thị thông báo thành công với một số tùy chọn khác toastr.info('Nội dung thông báo thông tin', ', {timeOut: 5000})
toastr cũng hỗ trợ bạn việc xóa/ẩn thông báo thông qua phương thức remove và clear
// Thông báo sẽ được xóa ngay lập tức toastr.remove() // Thông báo được xóa nhưng kèm theo hiệu ứng từ từ ẩn đi toastr.clear()
Qua một số ví dụ trên ta có thể thấy việc sử dụng toastr để hiển thị thông báo có cấu trúc chung sau
toastr.<tên phương thức>(<nội dung thông báo>, <tiêu đề của thông báo>, <các tùy chọn khác>)
Một số tùy chọn cấu hình của toastr
Tránh các ký tự đặc biệt, thẻ HTML (Escape HTML characters)
Để tránh trang web bị tấn công qua các thông báo dưới dạng html bạn có thể sử dụng options excape HTML để trang web của bạn an toàn hơn Ví dụ Thông báo không an toàn
toastr.info("<script>alert('Script chứa mã độc')</script>")
Thông báo an toàn
toastr.options.escapeHtml = true; // sau khi escapeHtml thì đoạn script trong nội dung thông báo sẽ không thể chạy được toastr.info("<script>alert('Script chứa mã độc')</script>") hoặc toastr.info("<script>alert('Script chứa mã độc')</script>", undefined, {escapeHtml: true})
Nút đống thông báo (close button)
Bạn có thể hiển thị nút đóng thông báo như sau
toastr.options.closeButton = true;
Hoặc bạn có thể thay đổi nút đóng thông báo tùy ý như sau
toastr.options.closeHtml = '<button><i class="icon-off"></i></button>';
hoặc các khác bạn không muốn thay đổi html thì bạn có thể css lại cho nút đóng thông báo thông qua class sau #toast-container .toast-close-button
Thay đổi hiệu ứng đóng thông báo
toastr.options.closeMethod = 'fadeOut'; toastr.options.closeDuration = 300; toastr.options.closeEasing = 'swing';
Hiển thị theo thứ tự ưu tiên Theo mặc định thì thông báo mới nhất sẽ hiển thị ở trên, tuy nhiên bạn có thể cho thông báo mới nhất hiển thị ở dưới như sau
toastr.options.newestOnTop = false;
Một số callbacks
toastr.options.onShown = function() { console.log('show callback'); } toastr.options.onHidden = function() { console.log('hide callback'); } toastr.options.onclick = function() { console.log('click callback'); } toastr.options.onCloseClick = function() { console.log('close click callback'); }
Tùy chỉnh một số hiệu ứng
Toastr có hỗ trợ mặc định một số hiệu ứng. Tuy nhiên bạn vẫn có thể thay đổi các hiệu ứng theo ý thích của mình
Hiệu ứng chuyển động (Easings)
Theo mặc định các hiệu ứng hiển thị hoặc ẩn thông báo như sau (swing và linear đều được hỗ trợ sẵn bởi Jquery)
toastr.options.showEasing = 'swing'; toastr.options.hideEasing = 'linear'; toastr.options.closeEasing = 'linear';
Tuy nhiên bạn có thể thay đổi một số hiệu ứng khác bạn có thể thêm một plugin mới Jquery plugin
toastr.options.showEasing = 'easeOutBounce'; toastr.options.hideEasing = 'easeInBack'; toastr.options.closeEasing = 'easeInBack';
Cách thức hiện thị (Animation Method)
Bạn có thể chọn một số phương thức hiển thị sau show/hide, fadeIn/fadeOut, slideDown/slideUp. Tất cả các phương thức này đều được hỗ trợ bởi Jquery. Mặc định toastr dùng phương thức fadeIn/fadeOut
toastr.options.showMethod = 'slideDown'; toastr.options.hideMethod = 'slideUp'; toastr.options.closeMethod = 'slideUp';
Tránh các thông báo trùng lặp
Để tránh các thông báo trùng lặp bạn có thể dùng tùy chọn sau
toastr.options.preventDuplicates = true;
Thanh trạng thái (Progress Bar)
Bạn có thể hiện thị thanh trạng thái của tin nhắn như sau
toastr.options.progressBar = true;
Tham khảo
- github-toastr
- examples