JAVASCRIPT 43
Jquery.iphoneui.js Guest on 16th July 2020 01:27:51 PM
  1. /**
  2.  * .addTouch();
  3.  *
  4.  * .addTouch is a plugin for jQuery to convert touch events into simulated mouse events
  5.  * Most of jQuery UI is supported. See the proof of concept here:
  6.  *
  7.  *              http://spaceyraygun.net/mobile/jquery-ui-iphone.html
  8.  *
  9.  * The original code was altered slightly because it would simulate mouse events on every
  10.  * element which blocked native events like scrolling and zooming.
  11.  *
  12.  * To use this, simply call .addTouch() to a jQuery object and the events will be attached
  13.  * to those results only.
  14.  *
  15.  * @plugin_author: jason kuhn (http://jasonkuhn.net)
  16.  * @original_author: ross boucher (http://rossboucher.com/2008/08/19/iphone-touch-events-in-javascript/)
  17.  */
  18.  
  19. ;(function($){
  20.         $.iPhone = {
  21.                 init: function()
  22.                 {
  23.                         $(window).bind('orientationchange',$.iPhone.updateOrientation);
  24.                         this.updateOrientation();
  25.                         $('body').css({'min-height':'420px','min-width': '320px'});
  26.                 },
  27.                
  28.                 orientation: 'portrait',
  29.                 updateOrientation: function()
  30.                 {
  31.                         this.orientation = (window.orientation === 0 || window.orientation == null || window.orientation === 180) ?  'portrait' : 'landscape';
  32.                         $('body').attr('orient',this.orientation);
  33.                         setTimeout($.iPhone.hideURL,100);
  34.                 },
  35.                
  36.                 hideURL: function()
  37.                 {
  38.                         window.scrollTo(0, 1);
  39.                         setTimeout(function(){
  40.                                 window.scrollTo(0, 0);
  41.                         }, 0);
  42.                 },
  43.                
  44.                 preloadImages: function(images)
  45.                 {              
  46.                         $(images).each(function(key,val){
  47.                                 (new Image()).src = val;                       
  48.                         });
  49.                 }
  50.         };
  51.  
  52.         $.fn.addTouch = function()
  53.         {
  54.                 this.each(function(i,el){
  55.                         $(el).bind('touchstart touchmove touchend touchcancel',function(){
  56.                                 //we pass the original event object because the jQuery event
  57.                                 //object is normalized to w3c specs and does not provide the TouchList
  58.                                 handleTouch(event);
  59.                         });
  60.                 });
  61.                
  62.                 var handleTouch = function(event)
  63.                 {
  64.                         var touches = event.changedTouches,
  65.                         first = touches[0],
  66.                         type = '';
  67.                        
  68.                         switch(event.type)
  69.                         {
  70.                                 case 'touchstart':
  71.                                         type = 'mousedown';
  72.                                         break;
  73.                                        
  74.                                 case 'touchmove':
  75.                                         type = 'mousemove';
  76.                                         break;        
  77.                                        
  78.                                 case 'touchend':
  79.                                         type = 'mouseup';
  80.                                         break;
  81.                                        
  82.                                 default:
  83.                                         return;
  84.                         }
  85.                        
  86.                         var simulatedEvent = document.createEvent('MouseEvent');
  87.                         simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);
  88.                                                                                                                                  
  89.                         first.target.dispatchEvent(simulatedEvent);
  90.                        
  91.                         event.preventDefault();
  92.                 };
  93.         };
  94. })(jQuery);
  95.  
  96. $(document).ready(function(){
  97.         $.iPhone.init();
  98. });

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.