移動網站開發中常用的10段JavaScript代碼

來源:互聯網
上載者:User
在開發移動網站過程中,有一些Javascript代碼會經常用到。以下是10段常用的JavaScript代碼。需要注意的是某幾段代碼需要jQuery mobile framework支援。

1.如果網頁是在iPhone或Android瀏覽器中查看,則在主體元素中添加“iPhone”或“Android” 類名

Javascript代碼
  1. if (navigator.userAgent.match(/iPhone/i)) {  
  2.     $('body').addClass('iPhone');  
  3. } else if (navigator.userAgent.match(/Android/i)) {  
  4.          $('body').addClass('Android');  
  5. }  

iPhone使用者瀏覽樣本:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/419.3
Mozilla/5.0 (iPhone; U; XXXXX like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A477d Safari/419.3

Android使用者瀏覽樣本:

Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1
Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 GLOBAL Build/S273) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; E10i Build/2.0.2.A.0.24) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17

2. 移除瀏覽器地址欄

Javascript代碼
  1. window.scrollTo(0, 1);  

3. 防止網頁觸摸滾動

Javascript代碼
  1. notouchmove = function(event) {  
  2.     event.preventDefault();  
  3. }  
  4. <div data-role="page" id="home" ontouchmove="notouchmove(event);">  
  5. ...  
  6. </div>  

4. 當橫向瀏覽時顯示資訊

Javascript代碼
  1. var updateorientation = function (){  
  2.     var classname = '',  
  3.     top = 100;  
  4.     switch(window.orientation){  
  5.         case 0:  
  6.         classname += "normal";  
  7.         break;  
  8.   
  9.         case -90:  
  10.         classname += "landscape";  
  11.         break;  
  12.   
  13.         case 90:  
  14.         classname += "landscape";  
  15.         break;  
  16.   
  17.     }  
  18.   
  19.     if (classname == 'landscape') {  
  20.         if ($('#overlay').length === 0) {  
  21.             window.scrollTo(0, 1);  
  22.             $('body').append('<div id="overlay" style="width: 100%; height:' + $(document).height() + 'px"><span style="top: ' + top + 'px">Landscape view is not supported for this page.</span></div>');  
  23.         }  
  24.     } else {  
  25.         $('#overlay').remove();  
  26.     }  
  27. };  
  28. Usage:  
  29.   
  30. var supportsOrientationChange = "onorientationchange" in window,  
  31. orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";  
  32.   
  33. window.addEventListener(orientationEvent, function() {  
  34.     updateorientation();  
  35. }, false);  

5.顯示部分描述資訊,當點擊時顯示完整資訊

Javascript代碼
  1. var truncatedesc = function(trunc, len) {  
  2.     if (trunc) {  
  3.       var org = trunc;  
  4.   
  5.       if (trunc.length > len) {  
  6.         trunc = trunc.substring(0, len);  
  7.         trunc = trunc.replace(/w+$/, '');  
  8.   
  9.         trunc = '<span class="truncated">' + trunc;  
  10.         trunc += '<strong class="more-description">...</strong></span>';  
  11.         trunc += '<span class="original" style="display: none;">' + org + '</span>';  
  12.       }  
  13.   
  14.       $('.truncated').live("touchstart touchend", function() {  
  15.         $(this).closest('div').find('.original').show();  
  16.         $(this).closest('div').find('.truncated').hide();  
  17.         return false;  
  18.       });  
  19.   
  20.       return trunc;  
  21.     }  
  22. };  
  23. Usage:  
  24.   
  25. truncatedesc(item.description, 100);  

6. 收到成功的Ajax請求時,重新導向到另一個頁面(jQuery mobile)

Javascript代碼
  1. var ajaxurl = ‘http://…’; // Your web service URL  
  2.   
  3. $.ajax({  
  4.     url: ajaxurl,  
  5.     type: 'GET',  
  6.     processData: false,  
  7.     contentType: "application/json",  
  8.     dataType: "jsonp",  
  9.     success: function(data) {  
  10.         $.mobile.changePage("results.html");  
  11.     },  
  12.     error: function() {  
  13.         alert('Error!');  
  14.     }  
  15. });  

7. 從列表視圖的連結中刪除活動狀態(jQuery mobile)

Javascript代碼

  1. $('div').live('pageshow', function (event, ui) {  
  2.     $('[data-role=listview] li').removeClass("ui-btn-active");  
  3. });  

8. 從下拉選擇中禁用預設的jQuery mobile樣式(jQuery mobile)

Javascript代碼
  1. $(document).bind("mobileinit", function(){  
  2.     $.mobile.page.prototype.options.keepNative = "select";  
  3. });  

9. 動態更新列表視圖(jQuery mobile)

Javascript代碼
  1. var output  = '<li><img src="' + item.image + '" alt="' + item.title + '" />';  
  2. output += '<h3><a href="' + item.url + '">' + item.title + '</a></h3>';  
  3. output += '</li>';      
  4.   
  5. $('#mylistul').append(output).listview('refresh');  

10. 動態添加表單輸入和應用預設樣式(jQuery mobile)

Javascript代碼
  1. var html = '<input type="search" name="suburb" id="suburb" placeholder="Enter suburb" />';  
  2. $('#searchform').append(html);  
  3. $('#suburb').textinput();  

推薦書籍

下面兩本關於HTML5和jQuery的書將有助於你理解和使用jQuery mobile架構。


HTML5: Up and Running
jQuery: Novice to Ninja

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.