Как установить верхнюю центральную позицию для уведомления
Как установить положение без пикселей? Я пытаюсь это
var stack = { "dir1": "down", "dir2": "right", "firstpos1": 50, "firstpos2": 50 };
Но мне это плохо из-за разного разрешения экрана.
2 ответа
Решение
Есть похожий вопрос с ответом здесь. Согласно первому примеру в документации стеков, вы можете центрировать начальную позицию уведомления, установив верхние / левые свойства css в before_open. Вам также необходимо перемещать уведомление каждый раз, когда размер окна изменяется.
function get_center_pos(width, top) {
// top is empty when creating a new notification and is set when recentering
if (!top) {
top = 30;
// this part is needed to avoid notification stacking on top of each other
$('.ui-pnotify').each(function() {
top += $(this).outerHeight() + 20;
});
}
return {
"top": top,
"left": ($(window).width() / 2) - (width / 2)
}
}
$(document).ready(function() {
new PNotify({
title: "this is center",
text: "blablabla",
opacity: 0.90,
type: "info",
width: "390px",
before_open: function(PNotify) {
PNotify.get().css(get_center_pos(PNotify.get().width()));
}
});
$(window).resize(function() {
$(".ui-pnotify").each(function() {
$(this).css(get_center_pos($(this).width(), $(this).position().top))
});
});
});
Некропост, но может помочь другим искателям. Мое решение без пересчетов js:
ЯШ:
new PNotify({
...
addclass: 'pnotify-center'
});
CSS:
.pnotify-center {
right: calc(50% - 150px) !important;
}