jQuery Mobile - Map Popup
Descrição
Você pode usar iframe elemento para especificar a API do Google Maps.
Exemplo
O exemplo a seguir demonstra o uso de pop-up de mapa no jQuery Mobile Framework.
<!DOCTYPE html>
<head>
<title>Map Popup</title>
<meta name = "viewport" content = "width = device-width, initial-scale = 1">
<link rel = "stylesheet" href = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src = "https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script>
$( document ).on( "pagecreate", function() {
function scale( width, height, padding, border ) {
var scrWidth = $( window ).width() - 30,
scrHeight = $( window ).height() - 30,
ifrPadding = 2 * padding,
ifrBorder = 2 * border,
ifrWidth = width + ifrPadding + ifrBorder,
ifrHeight = height + ifrPadding + ifrBorder,
h, w;
if ( ifrWidth < scrWidth && ifrHeight < scrHeight ) {
w = ifrWidth;
h = ifrHeight;
} else if ( ( ifrWidth / scrWidth ) > ( ifrHeight / scrHeight ) ) {
w = scrWidth;
h = ( scrWidth / ifrWidth ) * ifrHeight;
} else {
h = scrHeight;
w = ( scrHeight / ifrHeight ) * ifrWidth;
}
return {
'width': w - ( ifrPadding + ifrBorder ),
'height': h - ( ifrPadding + ifrBorder )
};
};
$( ".ui-popup iframe" )
.attr( "width", 0 )
.attr( "height", "auto" );
$( "#popup_pap iframe" ).contents().find( "#map_popup" )
.css( { "width" : 0, "height" : 0 } );
$( "#popup_pap" ).on({
popupbeforeposition: function() {
var size = scale( 480, 320, 0, 1 ),
w = size.width,
h = size.height;
$( "#popup_pap iframe" )
.attr( "width", w )
.attr( "height", h );
$( "#popup_pap iframe" ).contents().find( "#map_popup" )
.css( { "width": w, "height" : h } );
},
popupafterclose: function() {
$( "#popup_pap iframe" )
.attr( "width", 0 )
.attr( "height", 0 );
$( "#popup_pap iframe" ).contents().find( "#map_popup" )
.css( { "width": 0, "height" : 0 } );
}
});
});
</script>
</head>
<body>
<div data-role = "page">
<div data-role = "header">
<h2>Header</h2>
</div>
<a href = "#popup_pap" data-rel = "popup" data-position-to = "window"
class = "ui-btn ui-btn-inline">Open Map</a>
<div data-role = "popup" id = "popup_pap" data-theme = "a">
<a href = "#" data-rel = "back" class = "ui-btn ui-btn-b ui-btn-a
ui-icon-delete ui-btn-icon-notext ui-btn-right">Close </a>
<iframe src = "/jquery_mobile/src/map.html" width = "480"
height = "320"></iframe>
</div>
<div data-role = "footer">
<h2>Footer</h2>
</div>
</div>
</body>
</html>
Resultado
Vamos realizar as seguintes etapas para ver como funciona o código acima -
Salve o código html acima como jqm_map_popup.html arquivo na pasta raiz do servidor.
Abra este arquivo HTML como http: //localhost/jqm_map_popup.html e a seguinte saída será exibida.