【问题标题】:CSS Transition Slide Menu on hover - ability to pin悬停时的 CSS 过渡幻灯片菜单 - 固定功能
【发布时间】:2018-12-11 04:21:12
【问题描述】:

我通过简单地将 CSS 转换应用于 div,从页面左侧创建了一个简单的滑出菜单。该 div 具有以下 CSS 类:

#slidingBox {
position: absolute;
width: 400px;
height: 100%;
background-color: #d9dada;
top: 0px;
left: 0px;
margin-left: -390px;
-moz-transition: all 0.3s ease-in-out;
-webkit-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
overflow-y: scroll;
}
     #slidingBox:hover {
         margin-left: 0px;
     }

它工作正常。我在一侧有 10px 的菜单,当我将鼠标悬停在它上面时,整个面板变得可见。但是,一旦我将鼠标从 DIV 上移开,它就会立即隐藏起来……很公平,我猜这就是这种悬停在过渡上的工作原理。然而,我想在角落里放一个小针按钮,我可以点击它,然后让菜单保持可见。此外,菜单当前显示在屏幕上的页面“上方” - 当“固定”时,我还希望调整下方页面的大小,以便在固定菜单旁边可以查看所有内容。

我可以坐下来玩一会儿,但是时间已经过去了,如果有人能指出我正确的方向,那将是一个很大的帮助!

我知道有许多不同/更好的方法来做我已经在这里做过的事情,所以任何其他的指针都会有很大的帮助。

【问题讨论】:

    标签: css transition


    【解决方案1】:

    您可以使用 jQuery 来检测 pin 按钮何时被单击并从 #slidingBox 中删除一个类以使其保持展开:

    $('#pin-menu-button').click(function() {
      $('#slidingBox').toggleClass('no-pin');
    });
    

    .no-pin 类赋予侧边栏菜单负左边距。

    要使固定菜单和内容并排显示,您可以使用 flexbox 样式。确保你设置了 display:flex;用于侧边栏和主要内容区域周围的容器。

    这是fiddle

    【讨论】:

    • 谢谢老兄!明天我会更详细地看一下。不过,这很有意义!会让你知道我是怎么过的!非常感谢!
    • 不得不试一试,我正在努力让第一部分工作......就像我点击按钮(触发事件)后悬停接管然后离开滑动框...?我明天再看看!
    • @CJH 在我的回答中添加了一个小提琴,看看,让我知道这是否是你想要做的。
    • ... 就好像容器在其旁边的 Javascript 窗格下方的页面左侧进行。我有一个“小提琴”,似乎我需要将#slidingbox 宽度更改为 420px 之类的疯狂的东西!?但是它现在可以工作了,所以看看我今晚是否可以实现它!谢谢一百万!
    • 我收到你的信时正在做!我不知道为什么小提琴对我来说不是开箱即用的(我想它对你有用吗?)设法在我的项目中实现它 - 再次对宽度和边距进行一些额外的捏造,但很高兴这个答案给了我我需要的一切!再次感谢,明天这对我的老板来说应该是一个惊喜!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2014-05-04
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    相关资源
    最近更新 更多