1 //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
2 //>>description: Utility methods for enabling and disabling user scaling (pinch zoom)
3 //>>label: Zoom Handling
6 define( [ "jquery", "./jquery.mobile.core" ], function( $ ) {
7 //>>excludeEnd("jqmBuildExclude");
9 var meta = $( "meta[name=viewport]" ),
10 initialContent = meta.attr( "content" ),
11 disabledZoom = initialContent + ",maximum-scale=1, user-scalable=no",
12 enabledZoom = initialContent + ",maximum-scale=10, user-scalable=yes",
13 disabledInitially = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test( initialContent );
15 $.mobile.zoom = $.extend( {}, {
16 enabled: !disabledInitially,
18 disable: function( lock ) {
19 if ( !disabledInitially && !$.mobile.zoom.locked ) {
20 meta.attr( "content", disabledZoom );
21 $.mobile.zoom.enabled = false;
22 $.mobile.zoom.locked = lock || false;
25 enable: function( unlock ) {
26 if ( !disabledInitially && ( !$.mobile.zoom.locked || unlock === true ) ) {
27 meta.attr( "content", enabledZoom );
28 $.mobile.zoom.enabled = true;
29 $.mobile.zoom.locked = false;
33 if ( !disabledInitially ) {
34 meta.attr( "content", initialContent );
35 $.mobile.zoom.enabled = true;
41 //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
43 //>>excludeEnd("jqmBuildExclude");