在之前的两篇笔记中波波主要采用dropdown插件来完成了表单中的下拉菜单。尽管采用dropdown能够实现下拉菜单的效果,但在与后端PHP代码对接过程中发现了很多其他问题。
昨天下班站在公交车上,思考了很久。决定还是纯手工CSS来实现吧。为了方便后续自己使用,因此特意做篇笔记。如果其他人跟波波有同样的需求,也可以参考。
首先看下效果:
实现代码:
1、CSS部分
- .slide-submenu{
- position: absolute;
- width: 100px;
- color: #333;
- background: #fff;
- z-index: 800;
- padding: 0px 0;
- rightright: -60px;
- top: 18px;
- border-top: 1px solid #e0e0e0;
- display: none;
- }
- .slide-submenu a{
- line-height: 30px;
- padding: 0 15px;
- display: block;
- font-size: 14px;
- }
- .slide-submenu a:hover{
- background: #fafafa;
- }
- .more:hover .slide-submenu{
- display: block;
- }
2、HTML部分(备注:仅供参考)
- <span class="nav-list" style="display: inline-block;text-decoration: none;cursor: pointer;position: relative">
- <a class="more" href="javascript:;" data-value="{$vo.id}">更多▼</a>
- <ul class="slide-submenu qy-box">
- {if auth("/admin/device/index")}<a data-open='{:url("/admin/device/index")}?id={$vo.id}' href="javascript:void(0)" data-title="设备管理">设备管理</a>{/if}
- {if auth("/admin/repaire/index")}<a data-open='{:url("/admin/repaire/index")}?id={$vo.id}' href="javascript:void(0)" data-title="维修管理">维修管理</a>{/if}
- {if auth("/admin/keepfit/index")}<a data-open='{:url("/admin/keepfit/index")}?id={$vo.id}' href="javascript:void(0)" data-title="保养管理">保养管理</a>{/if}
- {if auth("/admin/inspection/index")}<a data-open='{:url("/admin/inspection/index")}?id={$vo.id}' href="javascript:void(0)" data-title="巡检管理">巡检管理</a>{/if}
- {if auth("/admin/component/index")}<a data-open='{:url("/admin/component/index")}?id={$vo.id}' href="javascript:void(0)" data-title="部件管理">部件管理</a>{/if}
- {if auth("/admin/spare/index")}<a data-open='{:url("/admin/spare/index")}?id={$vo.id}' href="javascript:void(0)" data-title="备件管理">备件管理</a>{/if}
- {if auth("/admin/otherset/index")}<a data-open='{:url("/admin/otherset/index")}?id={$vo.id}' href="javascript:void(0)" data-title="其他设置">其他设置</a>{/if}
- </ul>
- </span>
3、JS部分:
- layui.use(['jquery'],function (){
- var $ = layui.jquery;
- //更多操作的下拉菜单
- $('.more').hover(
- function(){
- $(this).next('.qy-box').show();
- },
- function(){
- $(this).next('.qy-box').hide();
- },
- );
- //防止鼠标移动过慢无法点击下拉菜单
- $('.slide-submenu').hover(
- function (){
- $(this).show();
- },
- function (){
- $(this).hide();
- }
- )
- })
代码如上,不仅给layui框架的表格实现了下拉菜单,而且TP-admin后端集成的data-open、data-modal事件也能继续使用了。算是这两天中感觉最接近完美的一个方案吧。