NyroModal is a JQuery component for showing fancy popups. It has a problem in centering the popup in iOS devices .
The specific problem being that if you have scrolled a few pages and then you click on something which calls a Nyromodal popup , you have to scroll back all the way to the top of the page to see the popup. As a result , either you will either see the top of the popup being cut off or not at all. See image below for an example:
The workaround for this is to call the endShowContent callback function and reposition the popup. The sample code for this is given below:
$.nyroModalSettings({
type: 'iframe',
height: 250,
width: 520,
resizable: true,
autoSizable: true,
titleFromIframe: true,
modal: false,
// selIndicator: '#loading',
contentLoading: "" // use our own,
,cssOpt: {
bg: {
position: 'absolute',
overflow: 'hidden',
top: 0,
left: 0,
height: '100%',
width: '100%'
},
wrapper: {
position: 'relative',
top: '50%',
left: '50%'
},
wrapper2: {
},
content: {
},
loading: {
position: 'absolute',
top: '50%',
left: '50%',
marginTop: '-50px',
marginLeft: '-50px'
}
},
endShowContent: function(nm){
if( $("div.nyroModalBg").outerHeight() < $(window).outerHeight() ){
$("div.nyroModalBg").css("height", $(window).outerHeight());
}
if ( $("div.nyroModalBg").outerHeight() < $("body").outerHeight() ){
$("div.nyroModalBg").css("height", $("body").outerHeight());
}
} // Will be called one the content is resized
Leave a Reply