css - 在面板和经典水平布局之间切换菜单

标签 css jquery-mobile

我想要的是让我的网站菜单在面板和经典水平菜单之间切换。我的目标是根据屏幕尺寸(桌面/移动)更改网站菜单......但这是另一回事!

我有以下工作解决方案(http://jsfiddle.net/998HD/2/):

HTML

<div data-role="page">
    <div data-role="header">
        <h1>Title</h1>
        <a href="#0" id="lnkpnl">Panel</a>
    </div>
    <div id="pnl" data-role="panel" data-display="overlay">
        <ul data-role="listview">
            <li>One</li>
            <li>Two</li>
            <li>Three</li>
        </ul>
    </div>
    <div data-role="content">Lorem ipsum</div>
</div>

CSS

.menu.ui-panel {
    position: relative;
    width: 100%;
    min-height: 0
}
.menu.ui-panel .ui-li {
    display: inline-block;
    margin: 0;
    border: 0
}

JS

$('#lnkpnl').click(function() {
    var menu = 1; // 0 = panel, 1 = horizontal
    if (menu) $('#pnl').addClass('menu').insertAfter('.ui-header');
    $('#pnl').panel('open')    
})

JQuery Mobile 在标题和内容之后移动了#pnl 面板,这使我无法简单地应用:

.menu.ui-panel {
    position: static
    /*... other props ...*/
}

并避免在 javascript 代码中使用第 1 行和第 2 行。

所以,我问你。我的解决方案是最好的吗?是否有纯 css 解决方案?

非常感谢。

最佳答案

你说得对。有一种方法可以使用 transition CSS 来做到这一点。我包含了一个 Fiddle 来向您展示,但它是 jquery 辅助的。话又说回来,这是一个非常轻量级的 JS 调用,因此它不会扰乱您的应用程序。话又说回来,也不是你的。所以无论哪种方式,你都很好。

-webkit-transition:all 1.0s ease-in-out;
-moz-transition:all 1.0s ease-in-out;
-o-transition:all 1.0s ease-in-out;
transition:all 1.0s ease-in-out;

希望对你有帮助 FIDDLE

关于css - 在面板和经典水平布局之间切换菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22410540/

相关文章:

css - 像 normalize.css 这样的 CSS 重置会传播到 shadow dom 吗?

android - 仅在安装时在 phonegap android 应用程序中创建数据库

javascript - Jquery Mobile Datepicker 在滑动时更改月份

jquery - 动态填充 jQuery Mobile ListView 内容

javascript - jQuery 移动端与scrollTop 的bug

javascript - 带有弧形 Canvas 的倒数计时器

css - 如果旋转了父元素,如何取消旋转子元素?

css - React DatePicker 日历显示在表头后面

jquery - 在通过 jQuery 发生动画时将函数传递给 "button"?

javascript - 将 jQuery Mobile 应用程序连接到服务器数据库并在互联网连接关闭时打开弹出窗口