В моей заявке я использую элемент диалога с бумагой полимера. Стиль диалога всегда позиционирует его по центру, но я хочу, чтобы у него было минимальное расстояние между диалоговом и правым окнами, поэтому, когда окно сжимается, диалоговое окно с бумагой не приближается к правой стороне окна , чем заданное расстояние. Есть ли способ, которым я могу это сделать с помощью CSS, или использовать какую-либо другую технику?Позиция полимерной бумаги - диалоговое окно
ответ
если вы хотите указано расстояние между диалогами и правой стороны вы можете захотеть, чтобы повлиять на право собственности вашего бумажного диалога с фиксированным положением, как следующее:
html /deep/ .dialog-right-position {
position: fixed;
top: 10px;
right: 10px;
}
тогда вы просто объявить элемент с тем же именем класса css, конечно.
<paper-dialog heading="Custom Dialog Positioning" class="dialog-right-position">
<p>well right positioned paper dialog :) ! </p>
</paper-dialog>
и если вам нужен рабочий пример, здесь:
<!doctype html>
<html>
<head>
<title>paper-dialog-alignment </title>
<script src="webcomponentsjs/webcomponents.js"></script>
<link href="paper-button/paper-button.html" rel="import">
<link href="paper-dialog/paper-dialog.html" rel="import">
<style shim-shadowdom>
html /deep/ .dialog-right-position {
position: fixed;
top: 10px;
right: 10px;
}
html /deep/ .dialog-right-position::shadow #scroller {
width: 500px;
height: 350px;
}
</style>
</head>
<body unresolved>
<template is="auto-binding">
<section on-tap="{{toggleRightDialog}}">
<button>
Display dialog
</button>
<paper-dialog heading="Custom Dialog Positioning" class="dialog-right-position">
<p>well right positioned paper dialog :) ! </p>
</paper-dialog>
</section>
</template>
<script>
var scope = document.querySelector('template[is=auto-binding]');
scope.toggleRightDialog = function(e) {
if (e.target.localName == 'button') {
var d = e.target.nextElementSibling;
if (d) {
d.toggle();
}
}
};
</script>
</body>
</html>
мне удалось изменить диалог, если он становится слишком близко к правой стороне окна, вычисляя размер окна , ширину диалога и минимальное правое пространство между диалогом и окном. Мой сценарий включает элемент в правой части окна, который будет минимальным правым пространством, поэтому элемент не должен перекрываться. Если пространства достаточно, диалог центрируется, в противном случае он находится в правильном положении. Пожалуйста, проверьте мой код которым основан на примере jérémy Darchy:
<!doctype html>
<html>
<head>
<title>paper-dialog-alignment </title>
<script src="webcomponentsjs/webcomponents.js"></script>
<link href="paper-button/paper-button.html" rel="import">
<link href="paper-dialog/paper-dialog.html" rel="import">
<style shim-shadowdom>
html /deep/ .dialog-right-position::shadow #scroller {
width: 500px;
height: 350px;
}
html /deep/ #blueDiv {
float: right;
background: blue;
width: 200px;
height: 100vh;
}
</style>
</head>
<body unresolved>
<template is="auto-binding">
<section on-tap="{{toggleDialog}}">
<button>
Toggle dialog
</button>
<paper-dialog id="dialog" heading="Custom Dialog Positioning" class="dialog-right-position">
<p>not overlaping the blue element, centered when possible </p>
</paper-dialog>
<div id="blueDiv"></div>
</section>
</template>
<script>
var scope = document.querySelector('template[is=auto-binding]');
window.onresize = function(event) {
var dialog = document.querySelector("html /deep/ #dialog");
scope.repositionPaperDialog(dialog);
};
scope.toggleDialog = function(e) {
this.$.dialog.toggle();
};
// fired event from the core-overlay element, when the dialog opens
this.addEventListener("core-overlay-position", function(e) {
scope.repositionPaperDialog(e.detail.target);
});
scope.repositionPaperDialog = function(dialog) {
if ((document.body.clientWidth/2) < (dialog.offsetWidth/2 + this.$.blueDiv.offsetWidth)) {
// dialog overlaps the blue element, set the right position of the dialog
dialog.dimensions.position.h = 1;
dialog.style.right = "200px";
dialog.style.left = "";
} else {
// center dialog
dialog.style.left = "";
dialog.style.right = "";
dialog.dimensions.position.h = 0;
}
};
</script>
</body>
</html>
Хороший вопрос zlatomira, у меня также была такая же проблема. Я могу поддержать вас за это. –
Вы также можете сделать это намного проще. Я просто объявил все стороны (сверху, снизу, слева, справа) в бумажных диалогах CSS. В моем случае я сделал их все 25%, так что мой диалог) Это решение сработало для меня.
paper-dialog {
position: fixed;
top: 25%;
left: 25%;
bottom: 25%;
right: 25%;
margin: 0px;
}
- 1. Свойства полимерной бумаги-checkbox
- 2. Волна полимерной бумаги
- 3. Кнопка меню полимерной бумаги
- 4. Валидация элементов полимерной бумаги
- 5. Позиция jQuery диалоговое окно
- 6. Как изменить шрифт компонента полимерной бумаги
- 7. Невозможно изменить высоту полимерной бумаги
- 8. Удалить диалоговое окно теневой бумаги (Polymer)
- 9. Сброс Значение и метка бумаги-вставки для полимерной бумаги
- 10. Выделение текста программно в вводе полимерной бумаги
- 11. Карточка с неоновой анимацией из полимерной бумаги
- 12. полимерной бумаги меню кнопки выпадающий не работает
- 13. Элемент ввода полимерной бумаги не отображается
- 14. Переменная ширина для вкладок полимерной бумаги
- 15. Несколько листов из полимерной бумаги на странице
- 16. Ввод полимерной бумаги с автозаполнением google
- 17. Входные атрибуты полимерной бумаги в мобильном браузере
- 18. Использование полимерной бумаги-диалога в приложении angular2 typescript
- 19. Диалоговое окно «Диалоговое окно« Диалоговое окно «Диалоговое окно« Диалоговое окно »не обновлено
- 20. изменение в полимерной бумажно-меню
- 21. Диалоговое окно «Диалоговое окно» по умолчанию «Нет»?
- 22. Диалоговое окно «Диалоговое окно« Свойства папки »
- 23. Диалоговое окно Android Диалоговое окно при запуске
- 24. Диалоговое окно Primefaces: диалоговое окно не открывается
- 25. Публикация выпадающего меню из полимерной бумаги с выбранным элементом
- 26. Как ориентировать кнопку полимерной бумаги в нижней части экрана
- 27. не может изменить цвет фона кнопки полимерной бумаги
- 28. Суффикс ввода полимерной бумаги не работает как ожидалось
- 29. Dart полимерной бумаги элемент - как установить атрибуты (пренебрежительное и утвердительные)
- 30. Получите выбранное значение элемента полимерной бумаги в виде
Благодарим за описательный ответ! Мне удалось решить мою проблему по-другому, я покажу свой код, отвечая на этот вопрос, пожалуйста, проверьте его. –
Разве это компонент, который вы используете, когда вы просто заглядываете в '' с именем класса 'dialog-right-button'? –