滑动下拉菜单之js

本文详细讲解如何利用JavaScript技术实现动态的滑动下拉菜单效果,涵盖菜单的创建、事件监听以及动画效果的添加,助你打造交互丰富的网页导航体验。
摘要由CSDN通过智能技术生成
//初始化下拉菜单事件代码
$scope.$on("ngRepeatFinished", function (repeatFinishedEvent, element){
  //在show方法调用时刻立即触发(尚未显示执勤)
    $('.dropdown').on('show.bs.dropdown', function() {
       var dropdownToggle = $(this).find(".dropdown-toggle");
       var dropdownMenu = $(this).find(".dropdown-menu");
       var addItem={};
      if(dropdownToggle.offset().left>1000){
        addItem = dropdownMenu.clone(true)
          .css({
            "position": 'absolute',
            "left": (dropdownToggle.offset().left - dropdownMenu.outerWidth()+dropdownToggle.outerWidth()) + "px",
            "top": (dropdownToggle.offset().top + dropdownToggle.outerHeight()) + "px",
            "display":'block'
          });
      }else{
        addItem = dropdownMenu.clone(true)
          .css({
            "position": 'absolute',
            "left": dropdownToggle.offset().left + "px",
            "top": (dropdownToggle.offset().top + dropdownToggle.outerHeight()) + "px",
            "display":'block'
          });
      }
       $('body').append(addItem);
       addItem.unbind('mouseleave').bind('mouseleave',function(){
           dropdownToggle.dropdown('toggle');
       });
       dropdownMenu.detach();
   });
  //在hide方法调用时(但还未关闭隐藏)立即触发
  $('.dropdown').on('hidden.bs.dropdown', function() {
     var dropdownMenu=$("body>.dropdown-menu");
     var addItem = dropdownMenu.clone(true);
     $(this).append(addItem);
     dropdownMenu.detach();
   });

  $('.dropdown').hover(function(){
      var dropdownMenu = $("body>.dropdown-menu");
      if(dropdownMenu.length == 0 || $(this).attr('dpnum') != dropdownMenu.attr('dpnum')){
        $(this).find('.dropdown-toggle').dropdown('toggle');
      }
   },function(e){
       //console.log(e.toElement.className);
       if(e.toElement.className == "dropdown-menu" ||
       $(e.toElement).closest(".dropdown-menu").length != 0){
         return;
       }else{
         $(this).find('.dropdown-toggle').dropdown('toggle');
       }
   });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值