javascript - 不同的背景图片和左面板错误

标签 javascript jquery html css jquery-mobile

我使用的是 jQuery Mobile 1.4,如果我点击左侧面板,我的背景就会消失。我在 Omar 的帮助下解决了这个错误(非常感谢)。

目标:

  • 主页应该有深色背景
  • 所有其他页面应该有浅色背景

问题 1:

  • 如果我点击主页上的面板,它会起作用。
  • 如果我转到 contactPage 并单击面板,背景会发生变化

问题 2:

  • 如果我转到联系人页面,打开面板,关闭面板并返回主页 - 我无法打开面板

JSFiddle: http://jsfiddle.net/ULuvu/1/

代码:

<div data-role="page" id="homePage" class="bg-dark">
    <div id="nav-panel" data-role="panel">
        <a href="#my-header" data-rel="close" class="ui-btn">Close panel</a>
    </div>
    <div data-role="content">
        <h3>homePage - DARK BACKGROUND</h3>
        <a href= "#nav-panel" data-role="button">Open Panel</a>
        <a href= "#contactPage" data-role="button">Contact</a>
    </div>
</div>

<div data-role="page" id="contactPage">
    <div id="nav-panel" data-role="panel">
        <a href="#my-header" data-rel="close" class="ui-btn">Close panel</a>
    </div>
    <div data-role="content">
        <h3>CONTACT - LIGHT BACKGROUND</h3>
        <a href= "#nav-panel" data-role="button">Open Panel</a>
        <a href= "#homePage" data-role="button">back</a>
    </div>
</div>

CSS

/* LIGHT BACKGROUND */
[data-role=page], .ui-panel-wrapper {
    background-image: url(http://bglabs.evade.netdna-cdn.com/wp-content/uploads/2013/05/stylish-floral-pattern.png) !important;
    background-repeat: repeat;
}

/* DARK BACKGROUND only homePage */
.bg-dark, .ui-panel-wrapper {
    background-image: url(http://bglabs.evade.netdna-cdn.com/wp-content/uploads/2013/04/black-mosaic-tiles.png) !important;
    background-repeat: repeat;
    color: #ffffff;
    font-weight: bold;
}

最佳答案

如果您为所有页面使用相同的面板,我建议您使用外部面板,而不是为每个页面添加相同的标记。

External panel 放置在page div 之外,可以在每个页面上调用。您只需对其进行一次初始化并增强其中的内容。

<!-- external panel -->
<div data-role="panel">
  <!-- contents -->
</div>

<!-- pages -->
<div data-role="page">
  <!-- contents -->
</div>

<div data-role="page">
  <!-- contents -->
</div>

初始化外部面板:

$(function () {
  $("[data-role=panel]").panel().enhanceWithin();
});

主页添加类.bg-dark,在其他页面添加类.bg-light并使用下面的CSS。

/* LIGHT BACKGROUND */
.bg-light, .bg-light .ui-panel-wrapper {
  background-image: url(light.png) !important;
  background-repeat: repeat;
}
/* DARK BACKGROUND only homePage */
.bg-dark, .bg-dark .ui-panel-wrapper {
 background-image: url(dark.png) !important;
 background-repeat: repeat;
 color: #ffffff;
 font-weight: bold;
}

Demo

关于javascript - 不同的背景图片和左面板错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941065/

相关文章:

javascript - 在一页上渲染同一张谷歌地图两次

javascript - 如何在页面上显示对象数组

javascript - ajax 未激活,将我带到另一个页面

javascript - 在 js 文件中找不到 Django、Ajax url

jquery - 使用 skip 一次只显示一个元素

javascript - 全屏组件 ReactJS

javascript - Preg 在 javascript 中替换

javascript - 从 alpha vantage 解析 json 数据

javascript - 平滑滚动 jquery 插件在刷新时重置滚动起点。有没有办法来解决这个问题?

jquery - .slideUp 和 .slideDown 突然停止正常工作