Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ngDialog positioning and sizing

Tags:

css

ng-dialog

I am working on a popup window using ngDialog. Here is some code:

<style>
    .ngdialog.dialogforpopup .ngdialog-content
    {
        width : 1100px;
        margin-top:-100px;
        padding-top:10px;
    }
</style>

Template

<div style="height:800px;width:1040px;padding-left:5px;padding-top:5px;
     padding-right:5px"

</div>
<div class="ngdialog-buttons" style="margin-top:10px">
          <button type="button" class="ngdialog-button ngdialog-button-primary" 
          ng-click="cancel()">Cancel</button>
          <button type="button" class="ngdialog-button ngdialog-button-primary" 
          ng-click="save()">Save</button>
</div>

Directive

ngDialog.open({
      template: 'editor.html',
      controller: 'editorController',
      className: 'ngdialog-theme-default dialogforpopup',
      closeByDocument: false,
      disableAnimation: true
      });

I have two questions. How can center my popup on the screen? Currently I am using margin-top:-100px; Is it possible to size ngDialog automatically to its content?

Thanks

like image 409
Mark Avatar asked Sep 26 '22 16:09

Mark


2 Answers

One can center ngdialog by setting "table-like" styles:

.ngdialog{
  padding:0 !important;
}

.ngdialog-content {
    padding: 0 !important;
    background: transparent !important;
    display: table; /*table-like styles for vertical centering*/
    width: 100% !important;
    height:100%;
}

.ngdialog-holder {
    display: table-cell;
    vertical-align: middle;
    width: 100%;
    height:100%;
}

.ngdialog-content > .ngdialog-close{
  display:none; /*hide original close button*/
}

.my-dialog{
  width:400px;
  background:#fff;
  border:1px solid #000;
  margin:0 auto; /*center dialog horizontally*/
  position: relative;
}

Also one need to wrap content of dialog with ".ngdialog-holder" and ".my-dialog" blocks. And finally place ".ngdialog-close" button inside of it.

<div class="ngdialog-holder"> 
    <div class="my-dialog"> 

       Dialog content goes here
       <div class="ngdialog-close"></div>

    </div>
</div>

Here is live example: ngdialog plunk

like image 184
Artem Y. Avatar answered Oct 17 '22 17:10

Artem Y.


I downloaded ngDialog package using bower. so ngDilaog related CSS and JS files are in bower_components.

I added the following CSS and JS files to my html page.

<link rel="stylesheet" href="../bower_components/ng-dialog/css/ngDialog.css">
<link rel="stylesheet" href="../bower_components/ng-dialog/css/ngDialog-theme-default.css">
<link rel="stylesheet" href="../bower_components/ng-dialog/css/ngDialog-theme-plain.css">
<script src="../bower_components/ng-dialog/js/ngDialog.js"></script>

In my own JS file I am opening the dialog in the following way:

 ngDialog.open({ template : 'dialog' ,scope : $scope , className: 'ngdialog-theme-default',  plain: false,
                    showClose: true,
                    closeByDocument: true,
                    closeByEscape: true,
                    appendTo: false});

here is the html code:

<script type="text/ng-template" id='dialog'>
<div class="ngdialog-message">
    Hello!!
</div>
</script>

With the above changes I am able to show the pop up on the center of the screen.

can use of the following class for pop up.

className: 'ngdialog-theme-plain'

className: 'ngdialog-theme-default'

I hope this will help!

like image 2
Danda Avatar answered Oct 17 '22 18:10

Danda