在我的應用程序中,我使用聚合物的紙對話元素。對話框的樣式始終將其放置在中間,但我希望它在對話框和窗口右側之間設置最小距離,所以當窗口縮小時,紙對話框不會靠近右側,比設定的距離。有沒有什麼辦法可以用CSS做,或者我可以用其他技術嗎?如果你想指定的對話框,您可能要影響你的紙對話框的產權與固定位置像下面右側之間的距離聚合物紙對話位置
Q
聚合物紙對話位置
3
A
回答
2
:
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>
2
我設法重新定位的對話框中,如果太靠近窗口的右側,通過計算窗口的大小,對話框的寬度以及對話框和窗口之間的最小右側空間。我的場景在窗口的右側包含一個元素,這將是最小的右側空間,以便元素不應該重疊。如果有足夠的空間,則對話框居中,否則它位置正確。請檢查我的代碼至極是基於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>
+0
不錯的問題zlatomira,我也面臨同樣的問題。我可以爲你效勞。 –
2
你也可以做到這一點簡單了很多。我只是在論文對話框CSS中聲明瞭所有的邊(頂,底,左,右)。在我的情況下,我讓他們全部25%,這樣我的對話)這個解決方案爲我工作。
paper-dialog {
position: fixed;
top: 25%;
left: 25%;
bottom: 25%;
right: 25%;
margin: 0px;
}
相關問題
- 1. 聚合物紙對話與紙張輸入floatingLabel動畫
- 2. 聚合物 - 右對齊紙張標籤
- 3. onHover紙卡聚合物
- 4. 聚合物紙卡鏈接
- 5. 聚合物紙輸入form.checkValidity()
- 6. 聚合物v.1全屏紙對話框
- 7. 聚合物紙對話框退出動畫不起作用
- 8. Mozilla Firefox上的聚合物紙對話框
- 9. 聚合物2紙對話自動打開與鐵頁內
- 10. 刪除陰影 - 紙張對話框(聚合物)
- 11. 聚合物-1.0是否存在紙對話消除事件?
- 12. JavaScript - 聚合物:this.splice紙張警報對話框
- 13. 聚合物紙對話框鐵覆蓋封閉不工作
- 14. 在紙張輸入(聚合物1.0)中設置佔位符值
- 15. 聚合物1.0紙卡在背景(位置:固定)
- 16. 在紙對話框中獲取聚合物紙張輸入的輸入值
- 17. 風格紙張輸入聚合物1.0
- 18. 聚合物1.0紙張大小調整
- 19. 聚合物2:紙張輸入
- 20. 聚合物紙標籤點擊事件?
- 21. 聚合物紙張按鈕不呈現
- 22. 聚合物1.0 - 隱藏紙盒面板
- 23. 聚合物獲取紙張輸入值
- 24. 聚合物紙元素屬性和Angular2
- 25. 與Angular2的聚合物紙菜單
- 26. 調試聚合物紙元素
- 27. 紙扣不在聚合物中工作..?
- 28. 聚合物:在<紙按鈕>
- 29. 聚合物紙陰影未應用
- 30. 聚合物2;紙張不可見
謝謝你的描述性答案!我設法以不同的方式解決了我的問題,我將通過回答這個問題來展示我的代碼,請檢查它。 –
然後,這是一個組件,你只需要在類名爲'dialog-right-button'的地方放入''中。 –