我是JQuery Mobile(1.4.5)的新手,刚刚完成了我的第一个项目。
唯一的问题是iOS7 +上的页面转换(在我的情况下是幻灯片转换)。虽然它们在站点和后退/前进按钮中工作正常,但如果有人在iOS设备的左侧或右侧边缘滑动以浏览浏览器历史记录,则会出现双重转换,因为本机iOS幻灯片和JQM的幻灯片连续发生。这似乎是任何页面转换的问题(除了#34;无"当然)。它甚至发生在JQuery Mobile的演示页面上。我见过其他人报告此问题时没有可靠的解决方案。
由于iOS Safari目前无法检测历史记录滑动事件,我认为下一个最好的方法是关闭转换(设置为'无')但仅在触发后退/前进事件时(我假设它也适用于iOS7 +左/右滑动)。我知道我会在后退/前进按钮上失去转换,但它们仍然可以在网站内工作,这是我愿意做出的妥协。但是,我不确定在JQM的代码中去哪里实现这一目标。
TL; DR:有没有办法将JQuery Mobile页面转换设置为' none'只有当按下浏览器的后退(和/或前进)按钮时才会出现?
答案 0 :(得分:2)
根据这个article,是的,你可以。使用浏览器按钮时,options.direction
会返回back
或forward
。然后将options.transition
更改为none
。
$(document).on("pagecontainerbeforechange", function (e, data) {
if (data.options.direction == "back" || data.options.direction == "forward") {
data.options.transition = "none";
}
});