移动动态导航条
Dynamic navbar for mobile
我正在用jQuery移动1.4.3做一个移动应用程序。我试图建立一个动态变化的导航栏,如果用户已经登录在导航栏将显示4个选项,如果没有它将显示3个选项。问题:
- 一旦我点击了几次,它就变成了蓝色。
- 我确定我没有使用正确的代码。
- 点击按钮,导航栏会消失一段时间。
- 单击页面时,蓝色点击高亮显示不持久。
我需要的是一个固定的导航栏,当点击时顺利地改变页面:)
http://jsfiddle.net/claire89/toxtcbhe/14/var statusLogin = null;
$(document).on('pagecontainershow', function (e, ui) {
var myNavbar = null;
if (statusLogin == null) {
myNavbar = $('<div data-role="footer" data-id="footer" data-position="fixed"><div data-role="navbar"><ul><li><a href="#listMenuPage" data-icon="grid" class="ui-btn-active ui-state-persist" data-theme="a">Menu</a></li><li><a href="#sugestionsPage" data-icon="grid" class="ui-state-persist" data-theme="a">Sugestions</a></li><li><a href="#historyPage" data-icon="grid" class="ui-state-persist" data-theme="a">History</a></li><li><a href="#settingsPage" data-icon="grid" class="ui-state-persist" data-theme="a">Settings</a></li></ul></div></div>');
$('.ui-content').append(myNavbar).trigger('create');
} else {
myNavbar = $('<div data-role="footer" data-id="footer" data-position="fixed"><div data-role="navbar"><ul><li><a href="#listMenuPage" data-icon="grid" class="ui-btn-active ui-state-persist" data-theme="a">Menu</a></li><li><a href="#historyPage" data-icon="grid" class="ui-state-persist" data-theme="a">History</a></li><li><a href="#settingsPage" data-icon="grid" class="ui-state-persist" data-theme="a">Settings</a></li></ul></div></div>').appendTo('.ui-content');
$('.content').append(myNavbar).trigger('create');
}
$("[data-role='navbar']").navbar();
$("[data-role='header'], [data-role='footer']").toolbar();
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
var activePageId = activePage[0].id;
switch (activePageId) {
case 'listMenuPage':
alert("listMenuPage");
break;
case 'sugestionsPage':
alert("sugestionsPage");
break;
case 'settingsPage':
alert("settingsPage");
break;
case 'historyPage':
alert("historyPage");
break;
default:
}
});
footerdiv应该是pagediv的直接子元素,您不应该将其放置在contentdiv中。此外,在您注入新页面之前离开页面时,您需要.remove()
footer或navbar。否则,无论何时显示同一页面,您都将在同一页面中添加重复的页脚和导航栏。
另一个注意事项,当你动态注入工具栏时,你需要重置活动页面$.mobile.resetActivePageHeight()
的高度,因为工具栏为页面添加填充,如果高度未重置,页面将滚动。
使用pagecontainerbeforeshow
注入页脚和导航条, pagecontainerhide
去除
var statusLogin = null;
$(document).on('pagecontainerbeforeshow', function (e, ui) {
/* ui.toPage was introduced in 1.4.3
* can be used instead of "getActivePage"
* on pagecontainer events
*/
var activePage = $(ui.toPage),
activePageId = activePage[0].id,
myNavbar = "";
if (statusLogin == null) {
myNavbar = $('<tags></tags>');
activePage.append(myNavbar);
} else {
myNavbar = $('<tags></tags>');
activePage.append(myNavbar);
}
/* create footer and navbar
* add active class to button based on page's ID
*/
$("[data-role='footer']")
.toolbar()
.find("a[href=#" + activePageId + "]")
.addClass("ui-btn-active");
/* reset height of active page */
$.mobile.resetActivePageHeight();
}).on("pagecontainerhide", function (e, ui) {
/* remove footer once page is hidden */
$(".ui-footer", ui.prevPage).remove();
});
相关文章:
- 动态更改'汉堡包'导航取决于BG图像
- 动态生成导航栏和AngularJS
- 有没有一种方法可以基于Angular 2中注册的路线构建动态导航/菜单
- html5:变成导航栏的动态标题
- 动态html页面导航
- 骨干路由器.导航如何传递动态ID
- 如何将活动状态类动态更改(添加)到导航链接
- Angularjs:隐藏包含动态参数的网址的导航栏
- 动态导航链接
- 从 JSON 数据动态创建 Jquery 移动导航栏
- 锚导航与坚持到顶部菜单..需要向锚点添加动态偏移量
- Jquery 在 Firefox 中的自定义对象参数(动态导航加载动态内容)
- 引导活动类动态导航
- 使用 JavaScript 动态更改导航填充
- 无法导航到jquerymobile/phonegap中动态添加的页面
- 在静态导航上动态设置活动链接
- 从ajax动态加载导航中移除Attr(href)
- 动态导航边栏内容
- .htaccess+PHP创建带有一些固定链接的动态Facebook类型导航
- 如何动态导航javascript多维数组