전화 응용 프로그램을 개발 중이며 화면 상단에 "뒤로"와 "다음"단추가 두 개 있습니다. 다음 버튼을 클릭 할 때마다 화면이 오른쪽에서 왼쪽으로 이동하고 대부분 뒤로 버튼을 클릭하면 왼쪽에서 오른쪽으로 이동합니다. 그러나 가끔씩 '뒤로'를 클릭하면 오른쪽에서 왼쪽으로 전환됩니다. EDIT가 화면 전환 : 항상 왼쪽에서 오른쪽으로 이동하는 방법
(function($, undefined) {
$.mobile.page.prototype.options.backBtnText = "Back";
$.mobile.page.prototype.options.addBackBtn = false;
$.mobile.page.prototype.options.backBtnTheme = null;
$.mobile.page.prototype.options.headerTheme = "a";
$.mobile.page.prototype.options.footerTheme = "a";
$.mobile.page.prototype.options.contentTheme = null;
$(document).delegate(":jqmData(role='page'), :jqmData(role='dialog')", "pagecreate", function(e) {
var $page = $(this),
o = $page.data("page").options,
pageRole = $page.jqmData("role"),
pageTheme = o.theme;
$(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')", this).each(function() {
var $this = $(this),
role = $this.jqmData("role"),
theme = $this.jqmData("theme"),
contentTheme = theme || o.contentTheme || (pageRole === "dialog" && pageTheme),
$headeranchors,
leftbtn,
rightbtn,
backBtn;
$this.addClass("ui-" + role);
//apply theming and markup modifications to page,header,content,footer
if (role === "header" || role === "footer") {
var thisTheme = theme || (role === "header" ? o.headerTheme : o.footerTheme) || pageTheme;
$this
//add theme class
.addClass("ui-bar-" + thisTheme)
// Add ARIA role
.attr("role", role === "header" ? "banner" : "contentinfo");
// Right,left buttons
$headeranchors = $this.children("a");
leftbtn = $headeranchors.hasClass("ui-btn-left");
rightbtn = $headeranchors.hasClass("ui-btn-right");
leftbtn = leftbtn || $headeranchors.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length;
rightbtn = rightbtn || $headeranchors.eq(1).addClass("ui-btn-right").length;
// Auto-add back btn on pages beyond first view
if (o.addBackBtn &&
role === "header" &&
$(".ui-page").length > 1 &&
$this.jqmData("url") !== $.mobile.path.stripHash(location.hash) &&
!leftbtn) {
backBtn = $("<a href='#' class='ui-btn-left' data-"+ $.mobile.ns +"rel='back' data-"+ $.mobile.ns +"icon='arrow-l'>"+ o.backBtnText +"</a>")
// If theme is provided, override default inheritance
.attr("data-"+ $.mobile.ns +"theme", o.backBtnTheme || thisTheme)
.prependTo($this);
}
// Page title
$this.children("h1, h2, h3, h4, h5, h6")
.addClass("ui-title")
// Regardless of h element number in src, it becomes h1 for the enhanced page
.attr({
"tabindex": "0",
"role": "heading",
"aria-level": "1"
});
} else if (role === "content") {
if (contentTheme) {
$this.addClass("ui-body-" + (contentTheme));
}
// Add ARIA role
$this.attr("role", "main");
}
});
});
})(jQuery);
의 .js
<a href="#" data-rel="back" data-role="button" data-inline="true" data-transition="myTransition" data-direction="reverse">Back</a>
.html 중에서 :
이
난 뒤 버튼있는 코드이 전이하다 난 만든
function myTransitionHandler(name, reverse, $to, $from) {
var deferred = new $.Deferred(),
reverseClass = reverse ? " reverse" : "",
viewportClass = "ui-mobile-viewport-transitioning viewport-" + name,
doneFunc = function() {
$to.add($from).removeClass("out in reverse " + name);
if ($from && $from[ 0 ] !== $to[ 0 ]) {
$from.removeClass($.mobile.activePageClass);
}
$to.parent().removeClass(viewportClass);
deferred.resolve(name, reverse, $to, $from);
};
$to.animationComplete(doneFunc);
$to.parent().addClass(viewportClass);
if ($from) {
$from.addClass(name + " out" + reverseClass);
}
$to.addClass($.mobile.activePageClass + " " + name + " in" + reverseClass);
return deferred.promise();
}
// Make our transition handler public.
$.mobile.transitionHandlers["myTransition"] = myTransitionHandler;
뒤로 버튼을 클릭 할 때 화면을 항상 왼쪽에서 오른쪽으로 이동할 수 있도록 추가 할 수있는 코드가 있습니까?
페이지에 내 자신의 전환을 추가하려고했지만 페이지 이동 방법과 아무런 차이가 없습니다. –
@HipHipArray; 'data-transition' 속성을 생성 한 새로운 전환의 이름으로 지정 했습니까? 시도한 내용으로 질문을 업데이트 할 수 있습니다. 생성 한 전환을 사용하고 있다고 확신 할 때까지 기본값이되는 것과는 다른 어떤 것을해야합니다. – veeTrain
나중에 데이터 전환 속성에 내 생성 된 전환을 추가했습니다 ... 내 질문을 편집하고 내가 만든 것을 추가합니다 –