`

jq插件之仿“卓越亚马逊”首页弹出菜单效果

阅读更多

jq插件之仿“卓越亚马逊”首页弹出菜单效果

转自http://www.cnblogs.com/regedit/archive/2008/07/02/1234340.html

/*弹出式菜单*/
//没剑 2008-07-03
//
http://regedit.cnblogs.com
/*
参数说明*/
//showobj:要显示的菜单ID
//
timeout:延时时间,鼠标停留/离开后延时多久开始显示/隐藏菜单
//
speed:菜单显示速度,数字越大,显示越慢,默认为100
//
调用示例:$("#button").DMenu("#content");
jQuery.fn.DMenu=function(showobj,timeout,speed){
    timeout
=timeout?timeout:300;
    speed
=speed?speed:100;
    
//按钮对象
    var button=$(this);
    
//延时计数器
    var timer=null;
    
//隐藏的浮动层
    var hideDiv=$("<div></div>");
    
//容器对象
    var Container=$("<div id=\"Container\"></div>");
    Container.hide();
    hideDiv.append(Container);
    
//菜单对象
    var jqShowObj=$(showobj);
    
//隐藏菜单
    jqShowObj.hide();
    
//菜单显示的状态
    var display=false;
    
//按钮的offset
    var offset=button.offset();
    
//菜单区高
    var height=jqShowObj.height();
    
//菜单区宽
    var width=jqShowObj.width();
    
//按钮的高
    var btnHeight=button.height();
    
//按钮的宽
    var btnWidth=button.width();
    
//定位层放到最前面
    $(document.body).prepend(hideDiv);
    
//放到容器中
    //Container.append(jqShowObj);

    
//****显示菜单方法开始****//
    var showMenu=function(){
        
//如果菜单为显示则退出操作
        if (display)
        {
            
return false;
        }
        
//设置容器属性
        Container.css({
            margin:
"0 auto",
            width:btnWidth
+"px",
            height:btnHeight
+"px"
        });
        
//定位隐藏层
        hideDiv.css({
            position:
"absolute",
            top:offset.top
+"px",
            left:offset.left
+(btnWidth/2)-(width/2)+"px",
            height:height
+"px",
            width:width
+"px"
        }).show();
        
//给容器加个黑边框
        Container.css({
            border:
"1px solid #666666"
        });
        
//显示定位层
        //高宽慢慢增大
        Container.animate({
            marginTop:btnHeight
+4,
            height:height
+4,
            width:width
+4,
            opacity:
'100'},speed,function(){
            
//动画结束时 start//
            //显示菜单
            jqShowObj.show();
            
//添加菜单入容器
            Container.append(jqShowObj);
            
//去除边框
            Container.css({
                border:
"0px"
            });
            
//显示状态置为true
            display=true;
            
//鼠标移入
            jqShowObj.mouseover(function(){
                    clearTimeout(timer); 
            });
            
//鼠标移开
            jqShowObj.mouseout(function(){
                hideMenu();
            });
            
//动画结束时 end//
        });
    };
    
//****显示菜单方法结束****//

    
//****隐藏菜单方法开始****//
    var hideMenu=function(){
        clearTimeout(timer); 
        
//延时隐藏菜单
        timer=setTimeout(function(){
        
//显示边框
        Container.css({
            border:
"1px solid #666666"
        });
        
//清空容器
        Container.empty();
        
//收缩容器
        Container.animate({
              width:btnWidth,height:btnHeight,marginTop:
'0', opacity: '0'
            }, speed,
function(){
            
//动画结束时 start//
            //隐藏容器
            Container.hide();
            
//定位层隐藏
            hideDiv.hide();
            
//显示状态置为false
            display=false;
            
//动画结束时 end//
        });
        }, timeout); 
    };
    
//****隐藏菜单方法结束****//

    
//绑定按钮鼠标经过事件
    button.hover(function(e){
        
//延时显示菜单
        clearTimeout(timer); 
        timer
=setTimeout(function(){
            showMenu();
        }, timeout); 
    },
function(){
        clearTimeout(timer); 
        
//鼠标离开按钮时,如果菜单还是显示状态则隐藏
        if(display){
            timer
=setTimeout(function(){
                hideMenu();
            },timeout);
        }
    });
};

分享到:
评论

相关推荐

    jquery 插件之仿“卓越亚马逊”首页弹出菜单效果

    代码如下:/*弹出式菜单*/ //没剑 2008-07-03 //http://regedit.cnblogs.com /*参数说明*/ //showobj:要显示的菜单ID //timeout:延时时间,鼠标停留/离开后延时多久开始显示/隐藏菜单 //speed:菜单显示速度,数字越...

    右侧弹出菜单

    从压缩包子文件的文件名称 "jquery-nav" 来看,这可能是一个基于jQuery的导航插件,用于实现右侧弹出菜单的效果。jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理和动画等任务,使得开发者可以更轻松地...

    很爽的jq插件,大家来下载了。几乎所有的弹出层都实现了。

    标题中的“很爽的jq插件,大家来下载了”暗示了这是一款基于jQuery的高效易用的弹出层插件。描述进一步说明了这款插件的特性,它集成了各种弹出层效果,用户只需进行简单的配置,就能实现丰富的弹出框功能,非常适合...

    JQ弹出框效果

    "JQ弹出框效果"是指使用jQuery库来创建这样的功能。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画制作以及Ajax交互等任务,使得开发者能够更高效地构建动态网页。 在描述中提到的“页面遮罩”...

    JQ导航弹性下拉菜单

    JQ导航弹性下拉菜单就实现了这一功能,通过jQuery的事件监听和DOM操作,使得菜单在用户交互时展现出平滑的过渡效果,增强了用户的操作感。 **jQuery库**是JavaScript的一个轻量级框架,它简化了DOM操作,提供了丰富...

    JQ layer 弹出层插件

    **JQ Layer 弹出层插件详解** JQ Layer是一款在JavaScript库jQuery基础上构建的弹出层插件,它提供了丰富的功能,如提示、对话框、加载层、iframe、图片预览等,广泛应用于网页交互设计中。该插件以其易用性和灵活...

    图片查看 -jq插件

    对于单图查看,jQuery插件通常会提供一个简单的图片容器,用户点击图片后,图片会在一个弹出窗口或者全屏模式下显示,同时提供关闭按钮以便用户返回原始页面。这个过程中,插件会处理图片的加载、显示和隐藏逻辑,...

    jq实现下拉菜单效果 jq二级菜单效果.zip

    jQuery(jq)作为一个轻量级的JavaScript库,因其简洁的API和丰富的插件,成为实现这种效果的首选工具。本示例将探讨如何使用jQuery实现一个二级下拉菜单的效果。 首先,我们需要理解HTML基础结构。一个简单的下拉...

    jQ长按鼠标左键弹出菜单.zip

    "jQ长按鼠标左键弹出菜单.zip"是一个示例代码包,它利用jQuery库实现了一个创新的功能:当用户长按鼠标左键时,会弹出一个快捷菜单。这个功能在网页应用中可以大大增加操作的便利性,尤其适用于需要频繁执行某些操作...

    5种JQ弹出大图效果

    "5种JQ弹出大图效果" 提供了五种使用jQuery实现的简单且实用的解决方案,使用户可以轻松地查看网页上的大图。jQuery是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果等功能,使得开发者能更高效...

    asp.net弹出框Jq插件用法模板

    JQuery是一个强大的JavaScript库,它提供了丰富的插件来实现各种弹出框效果。本文将详细介绍如何在ASP.NET环境中结合JQuery插件实现弹出框功能,并通过具体的例子——"asp.net弹出框Jq插件用法模板"进行讲解。 首先...

    仿百度图片鼠标移动效果(jq插件)

    总之,"仿百度图片鼠标移动效果(jq插件)"是利用jQuery和JavaScript实现的一种交互设计,通过监听鼠标事件和计算鼠标方向,创造出丰富的视觉反馈,增强了用户与网页的交互体验。这个插件的实现涉及到DOM操作、事件...

    jq弹出视频插件.zip

    "jq弹出视频插件.zip" 提供的解决方案正是为了提升这种体验,它允许开发者创建一个视频列表,当用户点击列表中的任一视频时,会弹出一个窗口来播放所选视频。这个插件基于JavaScript库jQuery构建,jQuery以其简洁的...

    jQuery弹出层 可加载iframe 功能强大 简单易用

    jQuery弹出层是一种常见的网页交互元素,用于在用户与页面交互时显示额外信息或功能,如提示、对话框、表单、或者加载外部内容。在这个特定的案例中,标题和描述提到的“jQuery弹出层可加载iframe”指的是一个利用...

    最优秀的50个JQ插件

    最优秀的50个JQ插件最优秀的50个JQ插件最优秀的50个JQ插件最优秀的50个JQ插件最优秀的50个JQ插件最优秀的50个JQ插件

    jq 双日历插件

    jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件日历选择器jq 双日历插件...

    jQ长按鼠标左键弹出菜单 jQuery长按鼠标左键弹出快捷菜单代码.zip

    这个压缩包"jQ长按鼠标左键弹出菜单 jQuery长按鼠标左键弹出快捷菜单代码.zip"显然是一个示例项目,展示了如何使用jQuery来实现一个功能:当用户长按鼠标左键时,会弹出一个快捷菜单。下面将详细解释这一技术实现的...

    jquery-contextMenu右键(左键)菜单插件

    `jQuery-contextMenu`是一款强大的JavaScript插件,专为创建功能丰富的上下文菜单而设计,能够处理大量的元素。这款插件不仅支持传统的右键点击触发,还可以根据需求设置为左键点击显示菜单,极大地提升了用户的交互...

    jq实现点击图片弹出大图

    在网页设计中,jQuery(通常简称为jq)是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理和动画效果。本教程将详细讲解如何使用jQuery实现点击图片后弹出大图的功能,这是一个常见的交互设计需求,能提升...

Global site tag (gtag.js) - Google Analytics