我写的 jQuery代码

简介: function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.
<!--   引入jQuery -->
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

        $(function() {
            var subshowtime = "";   //变量,“2秒后自动隐藏”的对象赋值给这个变量
            var urlparamsub = "";      //接收从上一链接的页面传递过来的参数1 子菜单(span)
            var urlparammain = ""     //接收从上一链接的页面传递过来的参数2 主菜单(图片)id
            var $imghoverobj = "";       //记录鼠标悬停的图片对象
            var $subspanhoverobj = "";   //记录鼠标悬停在某个子菜单(span)的对象
            var $subspanchkedobj = ""; //记录点击的子菜单的span对象
            // 页面跳转后接收传递的参数,并初始化一些参数:选中的子菜单和主菜单
            //根据url传来的参数,对主菜单和子菜单的处理
            // 功能:1,将点击的主菜单样式变成点击后的样式。2,点击的主菜单对应的子菜单(div)显示。
            //       3,显示的子菜单里的点击的子菜单(span)的显示
            function getUrlParameter() {
   
                var strHref = "";
                //接收当前URL的信息,注意 这里加 parent,获得 整个框架的url
                strHref = parent.document.location.toString();  
                var intPos = strHref.indexOf("?");     //取得"?"的位置 
                var urlparam = strHref.substr(intPos + 1); //获取到右边的参数部分"f=..&page=..."
                intPos = urlparam.indexOf("&");
                urlparamsub = urlparam.substr(2, intPos - 2); //子菜单(span)id :spanimgsolutions2
                urlparammain = urlparam.substr(intPos + 6); //主菜单的名字,其中前面的img被省略了
                if (urlparamsub == "") { //页面第一次打开的时候,参数设定
                    urlparamsub = "spanimghome";   
                    urlparammain = "home";        
                }
                urlparammain = "img" + urlparammain + "id"; //主菜单(图片)的id
                $subspanchkedobj = $("#" + urlparamsub); //记录点击的子菜单的span对象
                imgClickStyle($("#" + urlparammain));     // 1
                imgMatchSubShow($("#" + urlparammain)); //2 和 3
    
            }
            getUrlParameter(); //页面加载的时候直接运行
            
            //===================================================================================================================\\
            //|| 鼠标点击某个子菜单(span)的事件,传递的参数:1,f:点击的子菜单(span)的id . 2,主菜单的名字,其中前面的img被省略了||
            //===================================================================================================================\\
            $("#subMenu span").click(function() {
                SubSpanclickedStyle($(this)); //子菜单(即span)点击后的样式
                var f = "";      //子菜单的名字
                var varpage = "";   //主菜单的名字 
                var varhref = $(this).parent().attr("href");
                var varhrefspanid = $(this).attr("id"); //这里是span的id e.g : spanimgsolutions2
                f = $(this).text(); //暂时没用 span 里的 text
                varpage = $(this).parent().parent().attr("id").substr(3); //solutions
                window.open(varhref + "?f=" + varhrefspanid + "&page=" + varpage, "_parent");
            })
            //鼠标悬停在主某一菜单上(一个图片上)
            $("#imgDiv :not(.imgblank)").hover(function() {
                allHide(); //先将所有的子菜单隐藏
                if (subshowtime != "")
                    clearTimeout(subshowtime); //停止2秒后自动隐藏
                if ($imghoverobj != "") {   //上次鼠标悬停的菜单,恢复原来的图片
                    imgOriginalStyle($imghoverobj); //上次悬停的菜单恢复原来的src
                }
                imgHoverStyle($(this)); //悬停时候图片的新src属性
                if ($("#" + urlparammain).attr("id") == $(this).attr("id")) {
                    imgClickStyle($(this));     //保持点击后的样式
                }
                //this 对应的子菜单显示,及被选中的子菜单的样式的改变
                imgMatchSubShow($(this));
                $imghoverobj = $(this); //鼠标悬停的图片对象
            }, function() {   // 鼠标移开后(与上面的是联合事件)
                var varthisobj = $(this).attr("class"); //从主菜单的属性class 获得子菜单的id(认为设定主菜单class属性值==对应该子菜单的id)
                var thisobj = document.getElementById(varthisobj); //获得子菜单的对象(子菜单的div)
                var $hiddiv = $(thisobj); //DOM 对象 转化成 Jquery 对象, $hiddiv 为 点击的主菜单对应的子菜单(div)对象
                subshowtime = setTimeout(function() { subDivHidAnChkedShow($hiddiv) }, 2000);   //2秒后自动隐藏及点击的菜单显示
            });

            $("#imgDiv :not(.imgblank)").click(function() {   //点击主菜单事件
                //主菜单点击后的样式
                imgClickStyle($(this));
                //imgcontactid   --- spanimgcontact
                var varid = $(this).attr("id");
                var indexvar = varid.lastIndexOf("id");
                var temp = varid.slice(0, indexvar); //取出字符串的中间部分 “contact”
                var subid = "span" + temp;       //取得子菜单的id
                $("#" + subid).triggerHandler("click");
            })
            //-----------------------下面是对子菜单的处理--------------◆------------------\\
            $("#subMenu div").hover(function() {   //鼠标悬停在子菜单(div层)的事件
                if (subshowtime != "")
                    clearTimeout(subshowtime);
                $(this).show();
            }, function() {     //鼠标离开子菜单(div层)的事件
                var $hiddiv = $subspanhoverobj.parent().parent();
                subshowtime = setTimeout(function() { subDivHidAnChkedShow($hiddiv) }, 2000);   //2秒后自动隐藏及点击的菜单显示
            });
            $("#subMenu span").hover(function() {      //鼠标悬停在某个子菜单的事件
                if ($subspanchkedobj.attr('id') == $(this).attr('id')) { //如果this 是有点击过的子菜单
                    SubSpanclickedStyle($(this));
                }
                else {
                    subSpanHoverStyle($(this)); //鼠标悬停的span的样式
                    $subspanhoverobj = $(this);   //记录鼠标悬停的span的对象
                }
            }, function() {       //鼠标离开某个子菜单的事件
                if ($subspanchkedobj.attr('id') == $(this).attr('id')) { //如果this 是有点击过的子菜单
                    SubSpanclickedStyle($(this));
                } else {
                    subSpanOriginalStyle($(this)); //恢复span 最原始的样式
                }
            });
            //=====================================================================\\
            //|| 某一子菜单(div)2秒后自动隐藏,被点中的主菜单对应的子菜单显示   ||
            //======================================================================\\
            function subDivHidAnChkedShow($subdiv) {
                $subdiv.hide();         //子菜单隐藏
                if ($subspanchkedobj != "") //如果有子菜单(span)被选中,则该子菜单对应的父级的父级的菜单(div)显示
                    $subspanchkedobj.parent().parent().show();
            }
            //=========================================\\
            //|| 某一主菜单(即图片)最原始的样式 ||
            //=========================================\\
            function imgOriginalStyle($imgObj) {
                var Num1 = $imgObj.attr("src").indexOf("_"); // “_”的位置,(js 下标从0开始)
                var NewStrUrl1 = $imgObj.attr("src").substring(0, Num1 + 1);    //截取 “_”之前的字符串
                var NewSrc1 = NewStrUrl1 + "up.gif";   //原来的图片
                $imgObj.attr("src", NewSrc1);   // 菜单恢复原来的src
            }
            //==========================================\\
            //|| 某一主菜单(即图片)鼠标悬停时的样式 ||
            //==========================================\\
            function imgHoverStyle($imgObj) {
                var Num = $imgObj.attr("src").indexOf("_"); // “_”的位置,(js 下标从0开始)
                var NewStrUrl = $imgObj.attr("src").substring(0, Num + 1);    //截取 “_”之前的字符串
                var NewSrc = NewStrUrl + "over.gif"; //记下this的src
                $imgObj.attr("src", NewSrc);     //悬停时候图片的新src属性
                $imgObj.css("cursor", "pointer"); //鼠标变成手型    
            }
            //======================================\\
            //|| 某一主菜单(即图片)点击后的样式 ||
            //======================================\\
            function imgClickStyle($imgObj) {
                var ckNum = $imgObj.attr("src").indexOf("_"); // “_”的位置,(js 下标从0开始)
                var ckNewStrUrl = $imgObj.attr("src").substring(0, ckNum + 1);    //截取 “_”之前的字符串
                var ckNewSrc = ckNewStrUrl + "there.gif";     //点击后的图片src
                $imgObj.attr("src", ckNewSrc);    //点击图片的新src属性
                $imgObj.css("cursor", "auto"); //鼠标变成手型
            }
            //========================================\\
            //||点击主菜单,对应的子菜单(div)的显示||
            //========================================\\
            function imgMatchSubShow($imgobj) {
                var varthisobj = $imgobj.attr("class"); //从主菜单的属性class 获得子菜单的id(认为设定主菜单class属性值==对应该子菜单的id)
                var thisobj = document.getElementById(varthisobj); //获得子菜单的对象(子菜单的div)
                $thisobj = $(thisobj); //DOM 对象 转化成 Jquery 对象
                $thisobj.show();     //子菜单显示
                //如果“子子菜单(span)”对应的父级主菜单是显示的子菜单(div)
                if ($subspanchkedobj.parent().parent().attr("id") == $thisobj.attr("id"))
                    SubSpanclickedStyle($subspanchkedobj);    //点击的子菜单的span对象显示
            }
            //========================================\\
            //|| 某一子菜单(即span)点击后的样式   ||
            //========================================\\
            function SubSpanclickedStyle($subspanobj) {
   
                if ($subspanobj.text().length != 0) {   //筛选,因为页面上有2个主菜单对应的子菜单内容知识个空格
                    $subspanobj.css("background-color", "#112277");
                    $subspanobj.css("color", "#ffffff");
                }
            }
            //==========================================\\
            //|| 某一子菜单(即span)鼠标悬停的样式   ||
            //==========================================\\
            function subSpanHoverStyle($subspanobj) {
                if ($subspanobj.text().length != 0) {   //筛选,因为页面上有2个主菜单对应的子菜单内容知识个空格
                    $subspanobj.css("background-color", "#7788bb"); //背景颜色变换
                    $subspanobj.css("color", "#ffffff");    //字体颜色发生变化
                }
            }
            //==========================================\\
            //|| 某一子菜单(即span)最原始的样式   ||
            //==========================================\\
            function subSpanOriginalStyle($subSpanObj) {
                $subSpanObj.css("background-color", "#bbccee");
                $subSpanObj.css("color", "#666666");
            }
        }) // “$(function() { ” 的结果标签
        function allHide() {   //全部的子菜单隐藏,除了点击后的主菜单对应的子菜单
            $("#subMenu div").hide();
        }
    </script>
相关文章
|
2月前
|
JavaScript
jQuery幸运大转盘抽奖活动代码
jQuery幸运大转盘抽奖活动代码
34 7
jQuery幸运大转盘抽奖活动代码
|
6月前
|
JavaScript
基于jQuery的公告无限循环滚动实现代码
基于jQuery的公告无限循环滚动实现代码
33 0
|
8月前
|
JavaScript
jQuery 五角星评分案例(详细代码)
jQuery 五角星评分案例(详细代码)
67 0
|
8月前
|
JavaScript 开发者
|
4月前
|
JavaScript 前端开发
jquery酷炫的马赛克图片还原动画代码
jquery酷炫的马赛克图片还原动画代码,jquery马赛克图片动画,js酷炫图片代码,马赛克图片js还原效果,js图片分散汇聚效果素材
48 1
|
2月前
|
JavaScript
jQuery模态框弹窗提示代码
jQuery模态框弹窗提示代码
19 1
jQuery模态框弹窗提示代码
|
2月前
|
前端开发 JavaScript
jquery+css实现Tab栏切换的代码实例
jquery+css实现Tab栏切换的代码实例
31 0
|
10月前
|
前端开发 JavaScript
Echarts实战案例代码(22):jquery使用ajax属性beforeSend实现预加载loading效果代替showLoading的解决方案
Echarts实战案例代码(22):jquery使用ajax属性beforeSend实现预加载loading效果代替showLoading的解决方案
75 0
|
5月前
|
JavaScript 程序员
让我们一起抄代码,JQuery 用法整理
让我们一起抄代码,JQuery 用法整理
31 0