css - 悬停时的 CSS 过渡幻灯片菜单 - 固定功能
问题描述
通过简单地将 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 上移开,它就会重新隐藏起来……很公平,这就是我猜这种悬停在过渡上的工作原理。然而,我想在角落里放一个小针按钮,我可以点击它,然后保持菜单可见。此外,菜单当前显示在屏幕上的页面“上方” - 当“固定”时,我还希望调整下方页面的大小,以便在固定菜单旁边可以查看所有内容。
我可以坐下来玩一会儿,但是时间已经过去了,如果有人能指出我正确的方向,那将是一个很大的帮助!
我知道有很多不同/更好的方法可以做我在这里已经做过的事情,所以任何其他的指针都会有很大的帮助。
解决方案
您可以使用 jQuery 检测何时单击 pin 按钮并从 #slidingBox 中删除一个类以使其保持扩展:
$('#pin-menu-button').click(function() {
$('#slidingBox').toggleClass('no-pin');
});
.no-pin 类是给侧边栏菜单负左边距的原因。
要使固定菜单和内容并排显示,您可以使用 flexbox 样式。确保你设置了 display:flex; 用于侧边栏和主要内容区域周围的容器。
这是一个小提琴
推荐阅读
- sql - 带有计数数组的 SQL 查询?
- liferay - 如何使用管理员 Liferay 将我的自定义 portlet 拖/添加到 liferay 页面?
- classification - 生产模型 - 参考选定功能的最佳实践
- javascript - 从同一个变量中获取 2 个不同的值 - React 自定义钩子
- json - 处理 POST 请求(从另一个 html 模板获取 JSON 数据)时返回 render_template 的问题?
- javascript - 如何检测 X 和 Z 位置是否与某个网格相交(不使用鼠标)?- 三.js
- pandas - 如何将重复的熊猫列添加到一个列表中?
- amazon-s3 - 使用 CDK 将 IAM 策略添加到 S3 会出现错误
- mysql - mysql数据库列问题
- python - 具有多个输出的 TensorFlow AutoGraph 多项式模型