モバイル開発10段でよく使われるJavaScriptコード
5456 ワード
モバイルサイトを開発する過程で、Javascriptコードがよく使われることがあります.以下は10段でよく使われるJavaScriptコードです.いくつかのコードにはjQuery mobile frameworkサポートが必要であることに注意してください.1.WebページがiPhoneまたはAndroidブラウザで表示されている場合は、本体要素に「iPhone」または「Android」クラス名を追加します.
iPhoneユーザー閲覧例:Mozilla/5.0(iPhone;U;CPU like Mac OS X;en)AppleWebKit/420+(KHTML,like Gecko)Version/3.0 Mobile/1 A 537 a Safari/419.3 Mozilla/5.0(iPhone;U;XXXX like Mac OS X;en)AppleWebKit/420+(KHTML,like Gecko)Version/3.0 Mobile/1 A 477 d 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. ブラウザのアドレスバーの削除
3.Webページのタッチスクロール防止
4.横読み時に表示する情報
5.部分説明情報を表示し、クリックすると完全情報を表示する
6.成功したAjax要求を受け取った場合、別のページにリダイレクトする(jQuery mobile)
7.リストビューのリンクからアクティブ状態を削除する(jQuery mobile)
8.ドロップダウン選択からデフォルトのjQuery mobileスタイル(jQuery mobile)を無効にする
9.動的更新リストビュー(jQuery mobile)
10.フォーム入力の動的追加とデフォルトスタイルの適用(jQuery mobile)
if (navigator.userAgent.match(/iPhone/i)) {
$('body').addClass('iPhone');
} else if (navigator.userAgent.match(/Android/i)) {
$('body').addClass('Android');
}
iPhoneユーザー閲覧例:Mozilla/5.0(iPhone;U;CPU like Mac OS X;en)AppleWebKit/420+(KHTML,like Gecko)Version/3.0 Mobile/1 A 537 a Safari/419.3 Mozilla/5.0(iPhone;U;XXXX like Mac OS X;en)AppleWebKit/420+(KHTML,like Gecko)Version/3.0 Mobile/1 A 477 d 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. ブラウザのアドレスバーの削除
window.scrollTo(0, 1);
3.Webページのタッチスクロール防止
notouchmove = function(event) {
event.preventDefault();
}
<div data-role="page" id="home" ontouchmove="notouchmove(event);">
...
</div>
4.横読み時に表示する情報
var updateorientation = function (){
var classname = '',
top = 100;
switch(window.orientation){
case 0:
classname += "normal";
break;
case -90:
classname += "landscape";
break;
case 90:
classname += "landscape";
break;
}
if (classname == 'landscape') {
if ($('#overlay').length === 0) {
window.scrollTo(0, 1);
$('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>');
}
} else {
$('#overlay').remove();
}
};
Usage:
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
window.addEventListener(orientationEvent, function() {
updateorientation();
}, false);
5.部分説明情報を表示し、クリックすると完全情報を表示する
var truncatedesc = function(trunc, len) {
if (trunc) {
var org = trunc;
if (trunc.length > len) {
trunc = trunc.substring(0, len);
trunc = trunc.replace(/w+$/, '');
trunc = '<span class="truncated">' + trunc;
trunc += '<strong class="more-description">...</strong></span>';
trunc += '<span class="original" style="display: none;">' + org + '</span>';
}
$('.truncated').live("touchstart touchend", function() {
$(this).closest('div').find('.original').show();
$(this).closest('div').find('.truncated').hide();
return false;
});
return trunc;
}
};
Usage:
truncatedesc(item.description, 100);
6.成功したAjax要求を受け取った場合、別のページにリダイレクトする(jQuery mobile)
var ajaxurl = ‘http://…’; // Your web service URL
$.ajax({
url: ajaxurl,
type: 'GET',
processData: false,
contentType: "application/json",
dataType: "jsonp",
success: function(data) {
$.mobile.changePage("results.html");
},
error: function() {
alert('Error!');
}
});
7.リストビューのリンクからアクティブ状態を削除する(jQuery mobile)
$('div').live('pageshow', function (event, ui) {
$('[data-role=listview] li').removeClass("ui-btn-active");
});
8.ドロップダウン選択からデフォルトのjQuery mobileスタイル(jQuery mobile)を無効にする
$(document).bind("mobileinit", function(){
$.mobile.page.prototype.options.keepNative = "select";
});
9.動的更新リストビュー(jQuery mobile)
var output = '<li><img src="' + item.image + '" alt="' + item.title + '" />';
output += '<h3><a href="' + item.url + '">' + item.title + '</a></h3>';
output += '</li>';
$('#mylistul').append(output).listview('refresh');
10.フォーム入力の動的追加とデフォルトスタイルの適用(jQuery mobile)
var html = '<input type="search" name="suburb" id="suburb" placeholder="Enter suburb" />';
$('#searchform').append(html);
$('#suburb').textinput();