纯css在layui表格中实现hover下拉菜单

在之前的两篇笔记中波波主要采用dropdown插件来完成了表单中的下拉菜单。尽管采用dropdown能够实现下拉菜单的效果,但在与后端PHP代码对接过程中发现了很多其他问题。

昨天下班站在公交车上,思考了很久。决定还是纯手工CSS来实现吧。为了方便后续自己使用,因此特意做篇笔记。如果其他人跟波波有同样的需求,也可以参考。

首先看下效果:

纯css在layui表格中实现下拉菜单

实现代码:

1、CSS部分

  1. .slide-submenu{
  2.         positionabsolute;
  3.         width100px;
  4.         color#333;
  5.         background#fff;
  6.         z-index: 800;
  7.         padding0px 0;
  8.         rightright: -60px;
  9.         top18px;
  10.         border-top1px solid #e0e0e0;
  11.         displaynone;
  12.     }
  13.     .slide-submenu a{
  14.         line-height30px;
  15.         padding: 0 15px;
  16.         displayblock;
  17.         font-size14px;
  18.     }
  19.     .slide-submenu a:hover{
  20.         background#fafafa;
  21.     }
  22.     .more:hover .slide-submenu{
  23.         displayblock;
  24.     }

2、HTML部分(备注:仅供参考)

  1. <span class="nav-list" style="display: inline-block;text-decoration: none;cursor: pointer;position: relative">
  2.                     <a class="more" href="javascript:;" data-value="{$vo.id}">更多&#9660;</a>
  3.                     <ul class="slide-submenu qy-box">
  4.                         {if auth("/admin/device/index")}<a data-open='{:url("/admin/device/index")}?id={$vo.id}' href="javascript:void(0)" data-title="设备管理">设备管理</a>{/if}
  5.                         {if auth("/admin/repaire/index")}<a data-open='{:url("/admin/repaire/index")}?id={$vo.id}' href="javascript:void(0)" data-title="维修管理">维修管理</a>{/if}
  6.                         {if auth("/admin/keepfit/index")}<a data-open='{:url("/admin/keepfit/index")}?id={$vo.id}' href="javascript:void(0)" data-title="保养管理">保养管理</a>{/if}
  7.                         {if auth("/admin/inspection/index")}<a data-open='{:url("/admin/inspection/index")}?id={$vo.id}' href="javascript:void(0)" data-title="巡检管理">巡检管理</a>{/if}
  8.                         {if auth("/admin/component/index")}<a data-open='{:url("/admin/component/index")}?id={$vo.id}' href="javascript:void(0)" data-title="部件管理">部件管理</a>{/if}
  9.                         {if auth("/admin/spare/index")}<a data-open='{:url("/admin/spare/index")}?id={$vo.id}' href="javascript:void(0)" data-title="备件管理">备件管理</a>{/if}
  10.                         {if auth("/admin/otherset/index")}<a data-open='{:url("/admin/otherset/index")}?id={$vo.id}' href="javascript:void(0)" data-title="其他设置">其他设置</a>{/if}
  11.                     </ul>
  12.                 </span>

3、JS部分:

  1. layui.use(['jquery'],function (){
  2.             var $ = layui.jquery;
  3.             //更多操作的下拉菜单
  4.             $('.more').hover(
  5.                 function(){
  6.                     $(this).next('.qy-box').show();
  7.                 },
  8.                 function(){
  9.                     $(this).next('.qy-box').hide();
  10.                 },
  11.             );
  12.             //防止鼠标移动过慢无法点击下拉菜单
  13.             $('.slide-submenu').hover(
  14.                 function (){
  15.                     $(this).show();
  16.                 },
  17.                 function (){
  18.                     $(this).hide();
  19.                 }
  20.             )
  21.         })

代码如上,不仅给layui框架的表格实现了下拉菜单,而且TP-admin后端集成的data-open、data-modal事件也能继续使用了。算是这两天中感觉最接近完美的一个方案吧。

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!