MDL-33357 theme : mymobile whitespaces fixup
This commit is contained in:
@@ -524,61 +524,61 @@ if ( eventCaptureSupported ) {
|
||||
|
||||
|
||||
// Script: jQuery hashchange event
|
||||
//
|
||||
//
|
||||
// *Version: 1.3, Last updated: 7/21/2010*
|
||||
//
|
||||
//
|
||||
// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/
|
||||
// GitHub - http://github.com/cowboy/jquery-hashchange/
|
||||
// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js
|
||||
// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped)
|
||||
//
|
||||
//
|
||||
// About: License
|
||||
//
|
||||
//
|
||||
// Copyright (c) 2010 "Cowboy" Ben Alman,
|
||||
// Dual licensed under the MIT and GPL licenses.
|
||||
// http://benalman.com/about/license/
|
||||
//
|
||||
//
|
||||
// About: Examples
|
||||
//
|
||||
//
|
||||
// These working examples, complete with fully commented code, illustrate a few
|
||||
// ways in which this plugin can be used.
|
||||
//
|
||||
//
|
||||
// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/
|
||||
// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/
|
||||
//
|
||||
//
|
||||
// About: Support and Testing
|
||||
//
|
||||
//
|
||||
// Information about what version or versions of jQuery this plugin has been
|
||||
// tested with, what browsers it has been tested in, and where the unit tests
|
||||
// reside (so you can test it yourself).
|
||||
//
|
||||
//
|
||||
// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2
|
||||
// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5,
|
||||
// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.
|
||||
// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/
|
||||
//
|
||||
//
|
||||
// About: Known issues
|
||||
//
|
||||
//
|
||||
// While this jQuery hashchange event implementation is quite stable and
|
||||
// robust, there are a few unfortunate browser bugs surrounding expected
|
||||
// hashchange event-based behaviors, independent of any JavaScript
|
||||
// window.onhashchange abstraction. See the following examples for more
|
||||
// information:
|
||||
//
|
||||
//
|
||||
// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/
|
||||
// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/
|
||||
// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/
|
||||
// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/
|
||||
//
|
||||
// Also note that should a browser natively support the window.onhashchange
|
||||
//
|
||||
// Also note that should a browser natively support the window.onhashchange
|
||||
// event, but not report that it does, the fallback polling loop will be used.
|
||||
//
|
||||
//
|
||||
// About: Release History
|
||||
//
|
||||
//
|
||||
// 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more
|
||||
// "removable" for mobile-only development. Added IE6/7 document.title
|
||||
// support. Attempted to make Iframe as hidden as possible by using
|
||||
// techniques from http://www.paciellogroup.com/blog/?p=604. Added
|
||||
// techniques from http://www.paciellogroup.com/blog/?p=604. Added
|
||||
// support for the "shortcut" format $(window).hashchange( fn ) and
|
||||
// $(window).hashchange() like jQuery provides for built-in events.
|
||||
// Renamed jQuery.hashchangeDelay to <jQuery.fn.hashchange.delay> and
|
||||
@@ -604,37 +604,37 @@ if ( eventCaptureSupported ) {
|
||||
(function($,window,undefined){
|
||||
// Reused string.
|
||||
var str_hashchange = 'hashchange',
|
||||
|
||||
|
||||
// Method / object references.
|
||||
doc = document,
|
||||
fake_onhashchange,
|
||||
special = $.event.special,
|
||||
|
||||
|
||||
// Does the browser support window.onhashchange? Note that IE8 running in
|
||||
// IE7 compatibility mode reports true for 'onhashchange' in window, even
|
||||
// though the event isn't supported, so also test document.documentMode.
|
||||
doc_mode = doc.documentMode,
|
||||
supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 );
|
||||
|
||||
|
||||
// Get location.hash (or what you'd expect location.hash to be) sans any
|
||||
// leading #. Thanks for making this necessary, Firefox!
|
||||
function get_fragment( url ) {
|
||||
url = url || location.href;
|
||||
return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' );
|
||||
};
|
||||
|
||||
|
||||
// Method: jQuery.fn.hashchange
|
||||
//
|
||||
//
|
||||
// Bind a handler to the window.onhashchange event or trigger all bound
|
||||
// window.onhashchange event handlers. This behavior is consistent with
|
||||
// jQuery's built-in event handlers.
|
||||
//
|
||||
//
|
||||
// Usage:
|
||||
//
|
||||
//
|
||||
// > jQuery(window).hashchange( [ handler ] );
|
||||
//
|
||||
//
|
||||
// Arguments:
|
||||
//
|
||||
//
|
||||
// handler - (Function) Optional handler to be bound to the hashchange
|
||||
// event. This is a "shortcut" for the more verbose form:
|
||||
// jQuery(window).bind( 'hashchange', handler ). If handler is omitted,
|
||||
@@ -642,127 +642,127 @@ if ( eventCaptureSupported ) {
|
||||
// is a shortcut for the more verbose
|
||||
// jQuery(window).trigger( 'hashchange' ). These forms are described in
|
||||
// the <hashchange event> section.
|
||||
//
|
||||
//
|
||||
// Returns:
|
||||
//
|
||||
//
|
||||
// (jQuery) The initial jQuery collection of elements.
|
||||
|
||||
|
||||
// Allow the "shortcut" format $(elem).hashchange( fn ) for binding and
|
||||
// $(elem).hashchange() for triggering, like jQuery does for built-in events.
|
||||
$.fn[ str_hashchange ] = function( fn ) {
|
||||
return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange );
|
||||
};
|
||||
|
||||
|
||||
// Property: jQuery.fn.hashchange.delay
|
||||
//
|
||||
//
|
||||
// The numeric interval (in milliseconds) at which the <hashchange event>
|
||||
// polling loop executes. Defaults to 50.
|
||||
|
||||
|
||||
// Property: jQuery.fn.hashchange.domain
|
||||
//
|
||||
//
|
||||
// If you're setting document.domain in your JavaScript, and you want hash
|
||||
// history to work in IE6/7, not only must this property be set, but you must
|
||||
// also set document.domain BEFORE jQuery is loaded into the page. This
|
||||
// property is only applicable if you are supporting IE6/7 (or IE8 operating
|
||||
// in "IE7 compatibility" mode).
|
||||
//
|
||||
//
|
||||
// In addition, the <jQuery.fn.hashchange.src> property must be set to the
|
||||
// path of the included "document-domain.html" file, which can be renamed or
|
||||
// modified if necessary (note that the document.domain specified must be the
|
||||
// same in both your main JavaScript as well as in this file).
|
||||
//
|
||||
//
|
||||
// Usage:
|
||||
//
|
||||
//
|
||||
// jQuery.fn.hashchange.domain = document.domain;
|
||||
|
||||
|
||||
// Property: jQuery.fn.hashchange.src
|
||||
//
|
||||
//
|
||||
// If, for some reason, you need to specify an Iframe src file (for example,
|
||||
// when setting document.domain as in <jQuery.fn.hashchange.domain>), you can
|
||||
// do so using this property. Note that when using this property, history
|
||||
// won't be recorded in IE6/7 until the Iframe src file loads. This property
|
||||
// is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7
|
||||
// compatibility" mode).
|
||||
//
|
||||
//
|
||||
// Usage:
|
||||
//
|
||||
//
|
||||
// jQuery.fn.hashchange.src = 'path/to/file.html';
|
||||
|
||||
|
||||
$.fn[ str_hashchange ].delay = 50;
|
||||
/*
|
||||
$.fn[ str_hashchange ].domain = null;
|
||||
$.fn[ str_hashchange ].src = null;
|
||||
*/
|
||||
|
||||
|
||||
// Event: hashchange event
|
||||
//
|
||||
//
|
||||
// Fired when location.hash changes. In browsers that support it, the native
|
||||
// HTML5 window.onhashchange event is used, otherwise a polling loop is
|
||||
// initialized, running every <jQuery.fn.hashchange.delay> milliseconds to
|
||||
// see if the hash has changed. In IE6/7 (and IE8 operating in "IE7
|
||||
// compatibility" mode), a hidden Iframe is created to allow the back button
|
||||
// and hash-based history to work.
|
||||
//
|
||||
//
|
||||
// Usage as described in <jQuery.fn.hashchange>:
|
||||
//
|
||||
//
|
||||
// > // Bind an event handler.
|
||||
// > jQuery(window).hashchange( function(e) {
|
||||
// > var hash = location.hash;
|
||||
// > ...
|
||||
// > });
|
||||
// >
|
||||
// >
|
||||
// > // Manually trigger the event handler.
|
||||
// > jQuery(window).hashchange();
|
||||
//
|
||||
//
|
||||
// A more verbose usage that allows for event namespacing:
|
||||
//
|
||||
//
|
||||
// > // Bind an event handler.
|
||||
// > jQuery(window).bind( 'hashchange', function(e) {
|
||||
// > var hash = location.hash;
|
||||
// > ...
|
||||
// > });
|
||||
// >
|
||||
// >
|
||||
// > // Manually trigger the event handler.
|
||||
// > jQuery(window).trigger( 'hashchange' );
|
||||
//
|
||||
//
|
||||
// Additional Notes:
|
||||
//
|
||||
//
|
||||
// * The polling loop and Iframe are not created until at least one handler
|
||||
// is actually bound to the 'hashchange' event.
|
||||
// * If you need the bound handler(s) to execute immediately, in cases where
|
||||
// a location.hash exists on page load, via bookmark or page refresh for
|
||||
// example, use jQuery(window).hashchange() or the more verbose
|
||||
// example, use jQuery(window).hashchange() or the more verbose
|
||||
// jQuery(window).trigger( 'hashchange' ).
|
||||
// * The event can be bound before DOM ready, but since it won't be usable
|
||||
// before then in IE6/7 (due to the necessary Iframe), recommended usage is
|
||||
// to bind it inside a DOM ready handler.
|
||||
|
||||
|
||||
// Override existing $.event.special.hashchange methods (allowing this plugin
|
||||
// to be defined after jQuery BBQ in BBQ's source code).
|
||||
special[ str_hashchange ] = $.extend( special[ str_hashchange ], {
|
||||
|
||||
|
||||
// Called only when the first 'hashchange' event is bound to window.
|
||||
setup: function() {
|
||||
// If window.onhashchange is supported natively, there's nothing to do..
|
||||
if ( supports_onhashchange ) { return false; }
|
||||
|
||||
|
||||
// Otherwise, we need to create our own. And we don't want to call this
|
||||
// until the user binds to the event, just in case they never do, since it
|
||||
// will create a polling loop and possibly even a hidden Iframe.
|
||||
$( fake_onhashchange.start );
|
||||
},
|
||||
|
||||
|
||||
// Called only when the last 'hashchange' event is unbound from window.
|
||||
teardown: function() {
|
||||
// If window.onhashchange is supported natively, there's nothing to do..
|
||||
if ( supports_onhashchange ) { return false; }
|
||||
|
||||
|
||||
// Otherwise, we need to stop ours (if possible).
|
||||
$( fake_onhashchange.stop );
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
// fake_onhashchange does all the work of triggering the window.onhashchange
|
||||
// event for browsers that don't natively support it, including creating a
|
||||
// polling loop to watch for hash changes and in IE 6/7 creating a hidden
|
||||
@@ -770,79 +770,79 @@ if ( eventCaptureSupported ) {
|
||||
fake_onhashchange = (function(){
|
||||
var self = {},
|
||||
timeout_id,
|
||||
|
||||
|
||||
// Remember the initial hash so it doesn't get triggered immediately.
|
||||
last_hash = get_fragment(),
|
||||
|
||||
|
||||
fn_retval = function(val){ return val; },
|
||||
history_set = fn_retval,
|
||||
history_get = fn_retval;
|
||||
|
||||
|
||||
// Start the polling loop.
|
||||
self.start = function() {
|
||||
timeout_id || poll();
|
||||
};
|
||||
|
||||
|
||||
// Stop the polling loop.
|
||||
self.stop = function() {
|
||||
timeout_id && clearTimeout( timeout_id );
|
||||
timeout_id = undefined;
|
||||
};
|
||||
|
||||
|
||||
// This polling loop checks every $.fn.hashchange.delay milliseconds to see
|
||||
// if location.hash has changed, and triggers the 'hashchange' event on
|
||||
// window when necessary.
|
||||
function poll() {
|
||||
var hash = get_fragment(),
|
||||
history_hash = history_get( last_hash );
|
||||
|
||||
|
||||
if ( hash !== last_hash ) {
|
||||
history_set( last_hash = hash, history_hash );
|
||||
|
||||
|
||||
$(window).trigger( str_hashchange );
|
||||
|
||||
|
||||
} else if ( history_hash !== last_hash ) {
|
||||
location.href = location.href.replace( /#.*/, '' ) + history_hash;
|
||||
}
|
||||
|
||||
|
||||
timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay );
|
||||
};
|
||||
|
||||
|
||||
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv
|
||||
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
$.browser.msie && !supports_onhashchange && (function(){
|
||||
// Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8
|
||||
// when running in "IE7 compatibility" mode.
|
||||
|
||||
|
||||
var iframe,
|
||||
iframe_src;
|
||||
|
||||
|
||||
// When the event is bound and polling starts in IE 6/7, create a hidden
|
||||
// Iframe for history handling.
|
||||
self.start = function(){
|
||||
if ( !iframe ) {
|
||||
iframe_src = $.fn[ str_hashchange ].src;
|
||||
iframe_src = iframe_src && iframe_src + get_fragment();
|
||||
|
||||
|
||||
// Create hidden Iframe. Attempt to make Iframe as hidden as possible
|
||||
// by using techniques from http://www.paciellogroup.com/blog/?p=604.
|
||||
iframe = $('<iframe tabindex="-1" title="empty"/>').hide()
|
||||
|
||||
|
||||
// When Iframe has completely loaded, initialize the history and
|
||||
// start polling.
|
||||
.one( 'load', function(){
|
||||
iframe_src || history_set( get_fragment() );
|
||||
poll();
|
||||
})
|
||||
|
||||
|
||||
// Load Iframe src if specified, otherwise nothing.
|
||||
.attr( 'src', iframe_src || 'javascript:0' )
|
||||
|
||||
|
||||
// Append Iframe after the end of the body to prevent unnecessary
|
||||
// initial page scrolling (yes, this works).
|
||||
.insertAfter( 'body' )[0].contentWindow;
|
||||
|
||||
|
||||
// Whenever `document.title` changes, update the Iframe's title to
|
||||
// prettify the back/next history menu entries. Since IE sometimes
|
||||
// errors with "Unspecified error" the very first time this is set
|
||||
@@ -854,53 +854,53 @@ if ( eventCaptureSupported ) {
|
||||
}
|
||||
} catch(e) {}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Override the "stop" method since an IE6/7 Iframe was created. Even
|
||||
// if there are no longer any bound event handlers, the polling loop
|
||||
// is still necessary for back/next to work at all!
|
||||
self.stop = fn_retval;
|
||||
|
||||
|
||||
// Get history by looking at the hidden Iframe's location.hash.
|
||||
history_get = function() {
|
||||
return get_fragment( iframe.location.href );
|
||||
};
|
||||
|
||||
|
||||
// Set a new history item by opening and then closing the Iframe
|
||||
// document, *then* setting its location.hash. If document.domain has
|
||||
// been set, update that as well.
|
||||
history_set = function( hash, history_hash ) {
|
||||
var iframe_doc = iframe.document,
|
||||
domain = $.fn[ str_hashchange ].domain;
|
||||
|
||||
|
||||
if ( hash !== history_hash ) {
|
||||
// Update Iframe with any initial `document.title` that might be set.
|
||||
iframe_doc.title = doc.title;
|
||||
|
||||
|
||||
// Opening the Iframe's document after it has been closed is what
|
||||
// actually adds a history entry.
|
||||
iframe_doc.open();
|
||||
|
||||
|
||||
// Set document.domain for the Iframe document as well, if necessary.
|
||||
domain && iframe_doc.write( '<script>document.domain="' + domain + '"</script>' );
|
||||
|
||||
|
||||
iframe_doc.close();
|
||||
|
||||
|
||||
// Update the Iframe's hash, for great justice.
|
||||
iframe.location.hash = hash;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
})();
|
||||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
// ^^^^^^^^^^^^^^^^^^^ REMOVE IF NOT SUPPORTING IE6/7/8 ^^^^^^^^^^^^^^^^^^^
|
||||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
return self;
|
||||
})();
|
||||
|
||||
|
||||
})(jQuery,this);
|
||||
|
||||
/*!
|
||||
@@ -1630,9 +1630,9 @@ function validStyle( prop, value, check_vend ) {
|
||||
var vend_prop = vend_pref( vend ) + prop + ": " + value + ";",
|
||||
uc_vend = uc( vend ),
|
||||
propStyle = uc_vend + uc( prop );
|
||||
|
||||
|
||||
div.setAttribute( "style", vend_prop );
|
||||
|
||||
|
||||
if( !!div.style[ propStyle ] ) {
|
||||
ret = true;
|
||||
}
|
||||
@@ -2130,9 +2130,9 @@ $.widget( "mobile.page", $.mobile.widget, {
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
|
||||
|
||||
var self = this;
|
||||
|
||||
|
||||
// if false is returned by the callbacks do not create the page
|
||||
if( self._trigger( "beforecreate" ) === false ){
|
||||
return false;
|
||||
@@ -2149,11 +2149,11 @@ $.widget( "mobile.page", $.mobile.widget, {
|
||||
} );
|
||||
|
||||
},
|
||||
|
||||
|
||||
removeContainerBackground: function(){
|
||||
$.mobile.pageContainer.removeClass( "ui-overlay-" + $.mobile.getInheritedTheme( this.element.parent() ) );
|
||||
},
|
||||
|
||||
|
||||
// set the page container background to the page theme
|
||||
setContainerBackground: function( theme ){
|
||||
if( this.options.theme ){
|
||||
@@ -2178,12 +2178,12 @@ $.widget( "mobile.page", $.mobile.widget, {
|
||||
(function( $, window, undefined ) {
|
||||
|
||||
var createHandler = function( sequential ){
|
||||
|
||||
|
||||
// Default to sequential
|
||||
if( sequential === undefined ){
|
||||
sequential = true;
|
||||
}
|
||||
|
||||
|
||||
return function( name, reverse, $to, $from ) {
|
||||
|
||||
var deferred = new $.Deferred(),
|
||||
@@ -2200,9 +2200,9 @@ var createHandler = function( sequential ){
|
||||
// By using scrollTo instead of silentScroll, we can keep things better in order
|
||||
// Just to be precautios, disable scrollstart listening like silentScroll would
|
||||
$.event.special.scrollstart.enabled = false;
|
||||
|
||||
|
||||
window.scrollTo( 0, toScroll );
|
||||
|
||||
|
||||
// reenable scrollstart listening like silentScroll would
|
||||
setTimeout(function() {
|
||||
$.event.special.scrollstart.enabled = true;
|
||||
@@ -2219,64 +2219,64 @@ var createHandler = function( sequential ){
|
||||
doneOut();
|
||||
}
|
||||
else {
|
||||
$from.animationComplete( doneOut );
|
||||
$from.animationComplete( doneOut );
|
||||
}
|
||||
|
||||
|
||||
// Set the from page's height and start it transitioning out
|
||||
// Note: setting an explicit height helps eliminate tiling in the transitions
|
||||
$from
|
||||
.height( screenHeight + $(window ).scrollTop() )
|
||||
.addClass( name + " out" + reverseClass );
|
||||
},
|
||||
|
||||
|
||||
doneOut = function() {
|
||||
|
||||
if ( $from && sequential ) {
|
||||
cleanFrom();
|
||||
}
|
||||
|
||||
|
||||
startIn();
|
||||
},
|
||||
|
||||
startIn = function(){
|
||||
|
||||
$to.addClass( $.mobile.activePageClass );
|
||||
|
||||
|
||||
startIn = function(){
|
||||
|
||||
$to.addClass( $.mobile.activePageClass );
|
||||
|
||||
// Send focus to page as it is now display: block
|
||||
$.mobile.focusPage( $to );
|
||||
|
||||
// Set to page height
|
||||
$to.height( screenHeight + toScroll );
|
||||
|
||||
|
||||
scrollPage();
|
||||
|
||||
|
||||
if( !none ){
|
||||
$to.animationComplete( doneIn );
|
||||
}
|
||||
|
||||
|
||||
$to.addClass( name + " in" + reverseClass );
|
||||
|
||||
|
||||
if( none ){
|
||||
doneIn();
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
|
||||
doneIn = function() {
|
||||
|
||||
|
||||
if ( !sequential ) {
|
||||
|
||||
|
||||
if( $from ){
|
||||
cleanFrom();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$to
|
||||
.removeClass( "out in reverse " + name )
|
||||
.height( "" );
|
||||
|
||||
|
||||
toggleViewportClass();
|
||||
|
||||
|
||||
// In some browsers (iOS5), 3D transitions block the ability to scroll to the desired location during transition
|
||||
// This ensures we jump to that spot after the fact, if we aren't there already.
|
||||
if( $( window ).scrollTop() !== toScroll ){
|
||||
@@ -2287,7 +2287,7 @@ var createHandler = function( sequential ){
|
||||
};
|
||||
|
||||
toggleViewportClass();
|
||||
|
||||
|
||||
if ( $from && !none ) {
|
||||
startOut();
|
||||
}
|
||||
@@ -2751,7 +2751,7 @@ $.mobile.transitionFallbacks = {};
|
||||
// because the recording of the scroll position is delayed for 100ms after
|
||||
// the browser might have changed the position because of the hashchange
|
||||
$window.bind( $.support.pushState ? "popstate" : "hashchange", function() {
|
||||
setLastScrollEnabled = false;
|
||||
setLastScrollEnabled = false;
|
||||
});
|
||||
|
||||
// handle initial hashchange from chrome :(
|
||||
@@ -2764,7 +2764,7 @@ $.mobile.transitionFallbacks = {};
|
||||
// once the page has changed, re-enable the scroll recording
|
||||
$.mobile.pageContainer.bind( "pagechange", function() {
|
||||
|
||||
setLastScrollEnabled = true;
|
||||
setLastScrollEnabled = true;
|
||||
|
||||
// remove any binding that previously existed on the get scroll
|
||||
// which may or may not be different than the scroll element determined for
|
||||
@@ -2792,12 +2792,12 @@ $.mobile.transitionFallbacks = {};
|
||||
|
||||
//clear page loader
|
||||
$.mobile.hidePageLoadingMsg();
|
||||
|
||||
|
||||
// If transition is defined, check if css 3D transforms are supported, and if not, if a fallback is specified
|
||||
if( transition && !$.support.cssTransform3d && $.mobile.transitionFallbacks[ transition ] ){
|
||||
transition = $.mobile.transitionFallbacks[ transition ];
|
||||
}
|
||||
|
||||
|
||||
//find the transition handler for the specified transition. If there
|
||||
//isn't one in our transitionHandlers dictionary, use the default one.
|
||||
//call the handler immediately to kick-off the transition.
|
||||
@@ -2820,7 +2820,7 @@ $.mobile.transitionFallbacks = {};
|
||||
|
||||
//simply set the active page's minimum height to screen height, depending on orientation
|
||||
function getScreenHeight(){
|
||||
// Native innerHeight returns more accurate value for this across platforms,
|
||||
// Native innerHeight returns more accurate value for this across platforms,
|
||||
// jQuery version is here as a normalized fallback for platforms like Symbian
|
||||
return window.innerHeight || $( window ).height();
|
||||
}
|
||||
@@ -2832,7 +2832,7 @@ $.mobile.transitionFallbacks = {};
|
||||
var aPage = $( "." + $.mobile.activePageClass ),
|
||||
aPagePadT = parseFloat( aPage.css( "padding-top" ) ),
|
||||
aPagePadB = parseFloat( aPage.css( "padding-bottom" ) );
|
||||
|
||||
|
||||
aPage.css( "min-height", getScreenHeight() - aPagePadT - aPagePadB );
|
||||
}
|
||||
|
||||
@@ -2975,7 +2975,7 @@ $.mobile.transitionFallbacks = {};
|
||||
page = settings.pageContainer.children( "#" + dataUrl )
|
||||
.attr( "data-" + $.mobile.ns + "url", dataUrl );
|
||||
}
|
||||
|
||||
|
||||
// If we failed to find a page in the DOM, check the URL to see if it
|
||||
// refers to the first page in the application. If it isn't a reference
|
||||
// to the first page and refers to non-existent embedded page, error out.
|
||||
@@ -3068,7 +3068,7 @@ $.mobile.transitionFallbacks = {};
|
||||
pageElemRegex = new RegExp( "(<[^>]+\\bdata-" + $.mobile.ns + "role=[\"']?page[\"']?[^>]*>)" ),
|
||||
dataUrlRegex = new RegExp( "\\bdata-" + $.mobile.ns + "url=[\"']?([^\"'>]*)[\"']?" );
|
||||
|
||||
|
||||
|
||||
// data-url must be provided for the base tag so resource requests can be directed to the
|
||||
// correct url. loading into a temprorary element makes these requests immediately
|
||||
if( pageElemRegex.test( html )
|
||||
@@ -3110,7 +3110,7 @@ $.mobile.transitionFallbacks = {};
|
||||
// base URL, and then prepends with the new page URL.
|
||||
//if full path exists and is same, chop it - helps IE out
|
||||
thisUrl = thisUrl.replace( location.protocol + '//' + location.host + location.pathname, '' );
|
||||
|
||||
|
||||
if( !/^(\w+:|#|\/)/.test( thisUrl ) ) {
|
||||
$( this ).attr( thisAttr, newPath + thisUrl );
|
||||
}
|
||||
@@ -4055,7 +4055,7 @@ $.widget( "mobile.dialog", $.mobile.widget, {
|
||||
});
|
||||
|
||||
$el.addClass( "ui-dialog ui-overlay-" + this.options.overlayTheme );
|
||||
|
||||
|
||||
// Class the markup for dialog styling
|
||||
// Set aria role
|
||||
$el
|
||||
@@ -4187,7 +4187,7 @@ $.fn.grid = function( options ) {
|
||||
|
||||
$( document ).bind( "pagecreate create", function( e ){
|
||||
$( ":jqmData(role='nojs')", e.target ).addClass( "ui-nojs" );
|
||||
|
||||
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
@@ -4249,11 +4249,11 @@ $.fn.buttonMarkup = function( options ) {
|
||||
if ( attachEvents && !buttonElements) {
|
||||
attachEvents();
|
||||
}
|
||||
|
||||
// if not, try to find closest theme container
|
||||
|
||||
// if not, try to find closest theme container
|
||||
if ( !o.theme ) {
|
||||
o.theme = $.mobile.getInheritedTheme( el, "c" );
|
||||
}
|
||||
o.theme = $.mobile.getInheritedTheme( el, "c" );
|
||||
}
|
||||
|
||||
buttonClass = "ui-btn ui-btn-up-" + o.theme;
|
||||
buttonClass += o.inline ? " ui-btn-inline" : "";
|
||||
@@ -4264,13 +4264,13 @@ $.fn.buttonMarkup = function( options ) {
|
||||
// Used to control styling in headers/footers, where buttons default to `mini` style.
|
||||
buttonClass += o.mini ? " ui-mini" : " ui-fullsize";
|
||||
}
|
||||
|
||||
if ( o.inline !== undefined ) {
|
||||
|
||||
if ( o.inline !== undefined ) {
|
||||
// Used to control styling in headers/footers, where buttons default to `mini` style.
|
||||
buttonClass += o.inline === false ? " ui-btn-block" : " ui-btn-inline";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ( o.icon ) {
|
||||
o.icon = "ui-icon-" + o.icon;
|
||||
o.iconpos = o.iconpos || "left";
|
||||
@@ -4289,7 +4289,7 @@ $.fn.buttonMarkup = function( options ) {
|
||||
el.attr( "title", el.getEncodedText() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
innerClass += o.corners ? " ui-btn-corner-all" : "";
|
||||
|
||||
if ( o.iconpos && o.iconpos === "notext" && !el.attr( "title" ) ) {
|
||||
@@ -4378,10 +4378,10 @@ var attachEvents = function() {
|
||||
var theme,
|
||||
$btn = $( closestEnabledButton( event.target ) ),
|
||||
evt = event.type;
|
||||
|
||||
|
||||
if ( $btn.length ) {
|
||||
theme = $btn.attr( "data-" + $.mobile.ns + "theme" );
|
||||
|
||||
|
||||
if ( evt === "vmousedown" ) {
|
||||
if ( $.support.touch ) {
|
||||
hov = setTimeout(function() {
|
||||
@@ -4817,10 +4817,10 @@ $.widget( "mobile.listview", $.mobile.widget, {
|
||||
_create: function() {
|
||||
var t = this,
|
||||
listviewClasses = "";
|
||||
|
||||
|
||||
listviewClasses += t.options.inset ? " ui-listview-inset ui-corner-all ui-shadow " : "";
|
||||
listviewClasses += t.element.jqmData( "mini" ) || t.options.mini === true ? " ui-mini" : "";
|
||||
|
||||
|
||||
// create listview markup
|
||||
t.element.addClass(function( i, orig ) {
|
||||
return orig + " ui-listview " + listviewClasses;
|
||||
@@ -5429,9 +5429,9 @@ $.widget( "mobile.button", $.mobile.widget, {
|
||||
|
||||
// if this is a link, check if it's been enhanced and, if not, use the right function
|
||||
if( $el[ 0 ].tagName === "A" ) {
|
||||
!$el.hasClass( "ui-btn" ) && $el.buttonMarkup();
|
||||
return;
|
||||
}
|
||||
!$el.hasClass( "ui-btn" ) && $el.buttonMarkup();
|
||||
return;
|
||||
}
|
||||
|
||||
// get the inherited theme
|
||||
// TODO centralize for all widgets
|
||||
@@ -5612,28 +5612,28 @@ $( document ).bind( "pagecreate create", function( e ){
|
||||
disabledZoom = initialContent + ",maximum-scale=1, user-scalable=no",
|
||||
enabledZoom = initialContent + ",maximum-scale=10, user-scalable=yes",
|
||||
disabledInitially = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test( initialContent );
|
||||
|
||||
|
||||
$.mobile.zoom = $.extend( {}, {
|
||||
enabled: !disabledInitially,
|
||||
locked: false,
|
||||
disable: function( lock ) {
|
||||
if( !disabledInitially && !$.mobile.zoom.locked ){
|
||||
meta.attr( "content", disabledZoom );
|
||||
$.mobile.zoom.enabled = false;
|
||||
meta.attr( "content", disabledZoom );
|
||||
$.mobile.zoom.enabled = false;
|
||||
$.mobile.zoom.locked = lock || false;
|
||||
}
|
||||
},
|
||||
enable: function( unlock ) {
|
||||
if( !disabledInitially && ( !$.mobile.zoom.locked || unlock === true ) ){
|
||||
meta.attr( "content", enabledZoom );
|
||||
$.mobile.zoom.enabled = true;
|
||||
meta.attr( "content", enabledZoom );
|
||||
$.mobile.zoom.enabled = true;
|
||||
$.mobile.zoom.locked = false;
|
||||
}
|
||||
},
|
||||
restore: function() {
|
||||
if( !disabledInitially ){
|
||||
meta.attr( "content", initialContent );
|
||||
$.mobile.zoom.enabled = true;
|
||||
meta.attr( "content", initialContent );
|
||||
$.mobile.zoom.enabled = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -6355,11 +6355,11 @@ $.widget( "mobile.selectmenu", $.mobile.widget, {
|
||||
if( !!~this.element[0].className.indexOf( "ui-btn-left" ) ) {
|
||||
classes = " ui-btn-left";
|
||||
}
|
||||
|
||||
|
||||
if( !!~this.element[0].className.indexOf( "ui-btn-right" ) ) {
|
||||
classes = " ui-btn-right";
|
||||
}
|
||||
|
||||
|
||||
this.select = this.element.wrap( "<div class='ui-select" + classes + "'>" );
|
||||
this.selectID = this.select.attr( "id" );
|
||||
this.label = $( "label[for='"+ this.selectID +"']" ).addClass( "ui-select" );
|
||||
@@ -6372,7 +6372,7 @@ $.widget( "mobile.selectmenu", $.mobile.widget, {
|
||||
_create: function() {
|
||||
this._preExtension();
|
||||
|
||||
// Allows for extension of the native select for custom selects and other plugins
|
||||
// Allows for extension of the native select for custom selects and other plugins
|
||||
// see select.custom for example extension
|
||||
// TODO explore plugin registration
|
||||
this._trigger( "beforeCreate" );
|
||||
@@ -7195,7 +7195,7 @@ $( document ).bind( "pagecreate create", function( e ){
|
||||
self.updatePagePadding();
|
||||
if( o.updatePagePadding ){
|
||||
$( window ).bind( "throttledresize." + self.widgetName, function(){
|
||||
self.updatePagePadding();
|
||||
self.updatePagePadding();
|
||||
});
|
||||
}
|
||||
})
|
||||
@@ -7239,7 +7239,7 @@ $( document ).bind( "pagecreate create", function( e ){
|
||||
|
||||
$el.closest( ".ui-page" ).css( "padding-" + ( header ? "top" : "bottom" ), $el.outerHeight() );
|
||||
},
|
||||
|
||||
|
||||
_useTransition: function( notransition ){
|
||||
var $win = $( window ),
|
||||
$el = this.element,
|
||||
@@ -7248,7 +7248,7 @@ $( document ).bind( "pagecreate create", function( e ){
|
||||
pHeight = $el.closest( ".ui-page" ).height(),
|
||||
viewportHeight = $.mobile.getScreenHeight(),
|
||||
tbtype = $el.is( ":jqmData(role='header')" ) ? "header" : "footer";
|
||||
|
||||
|
||||
return !notransition &&
|
||||
( this.options.transition && this.options.transition !== "none" &&
|
||||
(
|
||||
@@ -7326,41 +7326,41 @@ $( document ).bind( "pagecreate create", function( e ){
|
||||
//auto self-init widgets
|
||||
$( document )
|
||||
.bind( "pagecreate create", function( e ){
|
||||
|
||||
|
||||
// DEPRECATED in 1.1: support for data-fullscreen=true|false on the page element.
|
||||
// This line ensures it still works, but we recommend moving the attribute to the toolbars themselves.
|
||||
if( $( e.target ).jqmData( "fullscreen" ) ){
|
||||
$( $.mobile.fixedtoolbar.prototype.options.initSelector, e.target ).not( ":jqmData(fullscreen)" ).jqmData( "fullscreen", true );
|
||||
}
|
||||
|
||||
|
||||
$.mobile.fixedtoolbar.prototype.enhanceWithin( e.target );
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
|
||||
( function( $, window ) {
|
||||
|
||||
|
||||
// This fix addresses an iOS bug, so return early if the UA claims it's something else.
|
||||
if( !(/iPhone|iPad|iPod/.test( navigator.platform ) && navigator.userAgent.indexOf( "AppleWebKit" ) > -1 ) ){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var zoom = $.mobile.zoom,
|
||||
evt, x, y, z, aig;
|
||||
|
||||
|
||||
function checkTilt( e ){
|
||||
evt = e.originalEvent;
|
||||
aig = evt.accelerationIncludingGravity;
|
||||
|
||||
|
||||
x = Math.abs( aig.x );
|
||||
y = Math.abs( aig.y );
|
||||
z = Math.abs( aig.z );
|
||||
|
||||
|
||||
// If portrait orientation and in one of the danger zones
|
||||
if( !window.orientation && ( x > 7 || ( ( z > 6 && y < 8 || z < 8 && y > 6 ) && x > 5 ) ) ){
|
||||
if( zoom.enabled ){
|
||||
zoom.disable();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( !zoom.enabled ){
|
||||
zoom.enable();
|
||||
@@ -7378,7 +7378,7 @@ $( document ).bind( "pagecreate create", function( e ){
|
||||
$head = $( "head" ),
|
||||
$window = $( window );
|
||||
|
||||
// trigger mobileinit event - useful hook for configuring $.mobile settings before they're used
|
||||
// trigger mobileinit event - useful hook for configuring $.mobile settings before they're used
|
||||
$( window.document ).trigger( "mobileinit" );
|
||||
|
||||
// support conditions
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
background-image: linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/);
|
||||
}
|
||||
.ui-bar-a,
|
||||
.ui-bar-a input,
|
||||
.ui-bar-a input,
|
||||
.ui-bar-a select,
|
||||
.ui-bar-a textarea,
|
||||
.ui-bar-a textarea,
|
||||
.ui-bar-a button {
|
||||
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
|
||||
}
|
||||
@@ -58,7 +58,7 @@
|
||||
background-image: -moz-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* FF3.6 */
|
||||
background-image: -ms-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* IE10 */
|
||||
background-image: -o-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Opera 11.10+ */
|
||||
background-image: linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/);
|
||||
background-image: linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/);
|
||||
}
|
||||
.ui-overlay-a {
|
||||
background-image: none;
|
||||
@@ -814,7 +814,7 @@ a.ui-link-inherit {
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||
only screen and (min--moz-device-pixel-ratio: 1.5),
|
||||
only screen and (min-resolution: 240dpi) {
|
||||
|
||||
|
||||
.ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r,
|
||||
.ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check,
|
||||
.ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back,
|
||||
@@ -909,7 +909,7 @@ a.ui-link-inherit {
|
||||
}
|
||||
.ui-icon-checkbox-off,
|
||||
.ui-icon-radio-off {
|
||||
background-color: transparent;
|
||||
background-color: transparent;
|
||||
}
|
||||
.ui-checkbox-on .ui-icon,
|
||||
.ui-radio-on .ui-icon {
|
||||
@@ -985,7 +985,7 @@ a.ui-link-inherit {
|
||||
.ui-corner-bl,
|
||||
.ui-corner-br,
|
||||
.ui-corner-top,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-right,
|
||||
.ui-corner-left,
|
||||
.ui-corner-all,
|
||||
@@ -994,7 +994,7 @@ a.ui-link-inherit {
|
||||
.ui-btn-corner-bl,
|
||||
.ui-btn-corner-br,
|
||||
.ui-btn-corner-top,
|
||||
.ui-btn-corner-bottom,
|
||||
.ui-btn-corner-bottom,
|
||||
.ui-btn-corner-right,
|
||||
.ui-btn-corner-left,
|
||||
.ui-btn-corner-all {
|
||||
@@ -1534,7 +1534,6 @@ div.ui-mobile-viewport { overflow-x: hidden; }
|
||||
-moz-animation-name: flipintoright;
|
||||
-webkit-animation-duration: 250ms;
|
||||
-moz-animation-duration: 250ms;
|
||||
|
||||
}
|
||||
.turn.out.reverse {
|
||||
-webkit-transform: rotateY(90deg) scale(.9);
|
||||
@@ -1587,7 +1586,7 @@ div.ui-mobile-viewport { overflow-x: hidden; }
|
||||
}
|
||||
.ui-dialog.flow {
|
||||
-webkit-transform-origin: none;
|
||||
-moz-transform-origin: none;
|
||||
-moz-transform-origin: none;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
}
|
||||
@@ -1846,7 +1845,7 @@ div.ui-mobile-viewport { overflow-x: hidden; }
|
||||
@media all and (min-width: 450px){
|
||||
.ui-field-contain .ui-controlgroup-label { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; }
|
||||
.ui-field-contain .ui-controlgroup-controls { width: 60%; display: inline-block; }
|
||||
.ui-field-contain .ui-controlgroup .ui-select { width: 100%; }
|
||||
.ui-field-contain .ui-controlgroup .ui-select { width: 100%; }
|
||||
.ui-field-contain .ui-controlgroup-horizontal .ui-select { width: auto; }
|
||||
}
|
||||
.ui-dialog {
|
||||
@@ -1858,25 +1857,25 @@ div.ui-mobile-viewport { overflow-x: hidden; }
|
||||
border: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
.ui-dialog .ui-header,
|
||||
.ui-dialog .ui-header,
|
||||
.ui-dialog .ui-content,
|
||||
.ui-dialog .ui-footer {
|
||||
.ui-dialog .ui-footer {
|
||||
display: block;
|
||||
position: relative;
|
||||
width: auto;
|
||||
}
|
||||
.ui-dialog .ui-header,
|
||||
.ui-dialog .ui-header,
|
||||
.ui-dialog .ui-footer {
|
||||
z-index: 10;
|
||||
z-index: 10;
|
||||
padding: 0;
|
||||
}
|
||||
.ui-dialog .ui-footer {
|
||||
padding: 0 15px;
|
||||
}
|
||||
.ui-dialog .ui-content {
|
||||
.ui-dialog .ui-content {
|
||||
padding: 15px;
|
||||
}
|
||||
.ui-dialog {
|
||||
.ui-dialog {
|
||||
margin-top: -15px;
|
||||
}
|
||||
.ui-checkbox, .ui-radio { position: relative; clear: both; margin: .2em 0 .5em; z-index: 1; }
|
||||
@@ -1924,7 +1923,7 @@ div.ui-mobile-viewport { overflow-x: hidden; }
|
||||
.ui-select .ui-disabled { opacity: .3; }
|
||||
@-moz-document url-prefix() {.ui-select .ui-btn select { opacity: 0.0001; }}
|
||||
.ui-select .ui-btn select.ui-select-nativeonly { opacity: 1; text-indent: 0; }
|
||||
.ui-select .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; }
|
||||
.ui-select .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; }
|
||||
.ui-select .ui-btn-icon-right .ui-icon { right: 15px; }
|
||||
.ui-select .ui-mini.ui-btn-icon-right .ui-icon { right: 7px; }
|
||||
/* labels */
|
||||
@@ -1945,7 +1944,7 @@ label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margi
|
||||
@media all and (min-width: 450px){
|
||||
.ui-field-contain label.ui-select { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; }
|
||||
.ui-field-contain .ui-select { width: 60%; display: inline-block; }
|
||||
}
|
||||
}
|
||||
/* when no placeholder is defined in a multiple select, the header height doesn't even extend past the close button. this shim's content in there */
|
||||
.ui-selectmenu .ui-header h1:after { content: '.'; visibility: hidden; }
|
||||
label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; }
|
||||
@@ -1969,9 +1968,9 @@ textarea.ui-mini { height: 45px; }
|
||||
.ui-field-contain textarea.ui-input-text,
|
||||
.ui-field-contain .ui-input-search { width: 60%; display: inline-block; }
|
||||
.ui-field-contain .ui-input-search { width: 50%; }
|
||||
.ui-hide-label input.ui-input-text,
|
||||
.ui-hide-label input.ui-input-text,
|
||||
.ui-hide-label textarea.ui-input-text,
|
||||
.ui-hide-label .ui-input-search { padding: .4em; width: 97%; }
|
||||
.ui-hide-label .ui-input-search { padding: .4em; width: 97%; }
|
||||
.ui-input-search input.ui-input-text { width: 98%; /*echos rule from above*/ }
|
||||
}
|
||||
.ui-listview { margin: 0; counter-reset: listnumbering; }
|
||||
|
||||
Reference in New Issue
Block a user