/*! * fjdz JavaScript Library v0.1 * http://www.fjdz.com.cn/ * * Copyright 2013, Fjdz * * Date: 2013-7-17 10:49:19 * 2013年7月29日11:04:34 * 2013年8月19日11:46:54 */ /** Fjdz 一些通用方法 */ var Fjdz = { jsPath: "/fjdz/", resPath: "/fjdz/", getQueryString: function(name) { //获取url参数,使用方法: Fjdz.getQueryString("key") var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }, imgFocus: function(obj, w, h, th, s, pl, ll, tl) { //输出html的对象,宽度,高度,文本高度,样式(1,2) var _w = w || 240, _h = h || 200, _th = th || 0, _s = s || 1; var _fh = _h + _th; var f = "focus1.swf", sHtml = ""; switch (_s) { case 1: f = this.resPath + "focus1.swf"; break; case 2: f = this.resPath + "focus2.swf"; break; default: f = this.resPath + "focus1.swf"; break; } sHtml += ''; sHtml += ''; sHtml += ''; sHtml += ''; sHtml += ''; sHtml += ''; obj.html(sHtml); }, /** 校验方法,传入参数 id 表示对象的表单对象的id name 表单对象的名称,在提示时会进行显示,如没有定义,会 显示为“表单对象[id]” required 是否必填 maxL 最大长度 minL 最小长度 p 校验模式, 正则表达式( \ 需要转义 即正则表达式中的\要输入为\\) mail 电子邮件 phone 电话 Chinese 汉字 number 数字 var v = { t : [ { id : "sender" , name:"姓名" , required : true , maxL : 10 , minL : 2 }, { id : "email" , name: "E-mail" ,required : true , maxL : 20 , minL : 2 , p : "mail" }, { id : "title" , name: "标题" ,required : true , maxL : 50 , minL : 2 }, { id : "vCode" , name: "验证码" ,required : true , maxL : 500 , minL : 2 }, { id : "content" , name: "内容" ,required : true , maxL : 500 , minL : 2 } ] }; return Fjdz.v(v); */ v : function( v ){ //校验方法,传入参数 for( i = 0 ; i < v.t.length ; i ++ ){ var obj = v.t[i],msg = "",itemValue=""; var objName = ( obj.name == "" || obj.name == undefined ) ? ("表单项目["+obj.id+"]") : obj.name; var formItem = $("#" + obj.id ); var m = function(s){ if( $.dialog ){ $.dialog({ title:"提示信息", content: s, lock: true, id:"showAlertDia", //okValue:"确定", cancelValue:"确定", cancel:function(){} }); }else{ alert(s); } } if(formItem.length==0){ continue;//如果没有对应的对象,则跳出循环,继续下一次 }else if(formItem[0].type=="text"){//根据表单的类型进行取值 itemValue = formItem.val(); }else if(formItem[0].type=="textarea"){//根据表单的类型进行取值 itemValue = formItem[0].value; } if( obj.required && itemValue.length==0 ){ msg = objName + "不能为空" ; m(msg);formItem.focus(); return false; } if( !isNaN(parseInt(obj.maxL)) && itemValue.length>0 && itemValue.length > parseInt(obj.maxL) ){ msg = objName + "长度不能超过" + parseInt(obj.maxL); m(msg);formItem.focus(); return false; } if( !isNaN(parseInt(obj.minL)) && itemValue.length>0 && itemValue.length < parseInt(obj.minL) ){ msg = objName + "长度不能小于" + parseInt(obj.minL); m(msg);formItem.focus(); return false; } if( obj.p != "" && itemValue.length>0 ){ switch( obj.p ){ case "mail": if( ! /^[a-zA-Z0-9_+.-]+\@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}$/.test( itemValue ) ){ msg = objName + "格式错误,请输入E-Mail地址"; m(msg);formItem.focus(); return false; } break; case "number": if( ! /^\d+$/.test( itemValue ) ){ msg = objName + "格式错误,请输入数字"; m(msg);formItem.focus(); return false; } break; case "phone": if( ! /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/.test( itemValue ) ){ msg = objName + "格式错误,请输入电话号码"; m(msg);formItem.focus(); return false; } break; case "Chinese": if( ! /[^\x00-\xff]*/.test( itemValue ) ){ msg = objName + "格式错误,请输入汉字"; m(msg);formItem.focus(); return false; } break; default: //if( /\/.*\//.test(obj.p) ){ var userPar = new RegExp(obj.p); if( !userPar.test( itemValue ) ){ msg = objName + "格式错误,请重新输入"; m(msg);formItem.focus(); return false; } //} break; } } } return true; } }; /** FjdzPage 返回WCM分页的html代码 使用方法如下: var _args = { recordCount : ,//记录总数;默认值0 ; pageCount : 10,//页码总数;默认值1 ${PAGE_COUNT} pageIndex : 1 ,//当前页面;默认值1 ${PAGE_INDEX}+1 ,prepage: 10 ,//每页条数,如果未传入页数,则需要进行计算 pageName : "index",//页面文件名;默认值index ${PAGE_NAME} pageExt : "htm" ,//页面后缀;默认值htm ${PAGE_EXT} pageNumLength:3 , //生成数字页面当前页码前后的长度,值为0时表示不显示数字页码 pageInfo: "共有#recordCount#条信息 共#pageCount#页 当前第#pageIndex#页", pageInfoNoData:"没有数据", //记录条数为0时的显示方式 toPageType: 0 ,//0表示不显示 1表示输入框 2表示下拉框 showFirst : 1 ,//0表示不显示首页、上一页 firstHtml : ["|<","<",">",">|"] // } $("#pagebar").html( FjdzPage.init( _args ).cWcmHtml ); */ var FjdzPage = { init: function(o) { var page = {}; var args = o; page.cWcmHtml = function() { var rn = args.recordCount || 0, n = args.pageCount || 1, i = args.pageIndex || 1, name = args.pageName || "index", ext = args.pageExt || "htm"; var num = args.pageNumLength || 3, sHtmlNum = "", //页码文本 sHtmlDesc = args.pageInfo || "共有#recordCount#条信息 共#pageCount#页 当前第#pageIndex#页", //描述文本 sHtmlDescNoData = args.pageInfoNoData || "没有找到任何信息", sHtmlGo = "", //下拉或输入文本 type = args.toPageType || 0, showFirst = args.showFirst || 0, firstHtml = args.firstHtml || ["首页", "上一页", "下一页", "尾页"], style = args.style || "0", pageBarId = args.pageBarId || "pageBar"; if (rn > 0) { //sHtmlDesc = "共有" + rn + "条信息 共" + n + "页 当前第" + i + "页"; sHtmlDesc = sHtmlDesc.replace("#recordCount#", rn).replace("#pageCount#", n).replace("#pageIndex#", i); } else { return sHtmlDescNoData; } if (n <= 1) { return sHtmlDesc; } if (showFirst != 0) { //生成首页、上一页 、1 if (i == 1) { sHtmlNum += "" + firstHtml[0] + ""; sHtmlNum += "" + firstHtml[1] + ""; //sHtmlNum += "1"; } else if (i == 2) { sHtmlNum += "" + firstHtml[0] + ""; sHtmlNum += "" + firstHtml[1] + ""; //sHtmlNum += "1"; } else { sHtmlNum += "" + firstHtml[0] + ""; sHtmlNum += "" + firstHtml[1] + ""; } } if (num > 0) { //以下进行计算,对长度不足的在另外一段补齐,如设置当前页码前后各显示3页,但是如果处于第2页时,前面只有1页,这个时候在后面多补2个页码 var b = i - num, e = i + num, n_b = 0, n_e = 0; for (k = b; k <= e; k++) { if (k < 1) { n_e++; } else if (k > n) { n_b++; } } if (n_e > 0) e = e + n_e; if (n_b > 0) b = b - n_b; //计算结束 for (k = b; k <= e; k++) { if (k == i) { sHtmlNum += "" + k + ""; } else if (k == 1) { sHtmlNum += "" + k + ""; } else if (k > 1 && k < n + 1) { sHtmlNum += "" + k + ""; } } } if (showFirst != 0) { if (i == n) { sHtmlNum += "" + firstHtml[2] + ""; sHtmlNum += "" + firstHtml[3] + ""; } else { sHtmlNum += "" + firstHtml[2] + ""; sHtmlNum += "" + firstHtml[3] + ""; } } if (type == 1) { //显示输入框 sHtmlGo = "跳转到第 57 ) event.returnValue = false;\" value=\"" + i + "\" \/>页"; window.toPage = page.toWcmPage; } else if (type == 2) { //显示下拉框 sHtmlGo = ""; if (i == 1) { sHtmlGo += "第1页<\/option>"; } else { sHtmlGo += "第1页<\/option>"; } for (k = 2; k < i; k++) { sHtmlGo += "第" + k + "页<\/option>"; } if (i > 1) { sHtmlGo += "第" + k + "页<\/option>"; } for (k = i + 1; k < n + 1; k++) { sHtmlGo += "第" + k + "页<\/option>"; } sHtmlGo += "<\/select>"; } else { } return sHtmlDesc + sHtmlNum + sHtmlGo; } page.setAttr = function(j){//通过传参的方式更改属性 for(var item in j){ //alert( typeof j[item] ); if(typeof j[item] === 'string'){ //alert("person中"+item+"的值="+j[item]); eval( "args."+item+"="+j[item] ); }else if (typeof j[item] === 'number'){ eval( "args."+item+"="+j[item] ); } else if(typeof j[item] === 'function'){ //j[item](1,1);//js 的function的参数可以动态的改变 } } } page.cPageCount = function(){//根据总条数和每页条数进行计算页面总数 var rn = args.recordCount || 0,prepage = args.prepage||10,pn=0; if( rn % prepage == 0 ){ //20 pn = rn / prepage ; }else{ //21 pn = ( rn - rn % prepage )/prepage + 1; } args.pageCount = pn; } page.cStyle = function(styName, objId) { var strCss = ""; switch (styName) { case "1": strCss = "#" + objId + "{text-align:center;padding:10px;}#" + objId + " a{text-decoration:none;border:1px solid #eee;color:#036cb4;margin:2px;padding:2px 5px;}#" + objId + " .cur{border:1px solid #036cb4;color:#fff;background-color:#036cb4;font-weight:blod;margin:2px;padding:2px 5px;}#" + objId + " .disab{border:#eee 1px solid;color:#ddd;margin:2px;padding:2px 5px;}#" + objId + " a:hover,#" + objId + " a:active{color:#666;border:1px solid #999;}"; break; case "2": strCss = "#" + objId + "{text-align:center;padding:10px;}#" + objId + " a{text-decoration:none;border:1px solid #ddd;color:#88af3f;margin:2px;padding:2px 5px;}#" + objId + " .cur{border:1px solid #b2e05d;color:#fff;background-color:#b2e05d;font-weight:blod;margin:2px;padding:2px 5px;}#" + objId + " .disab{border:#f3f3f3 1px solid;color:#ccc;margin:2px;padding:2px 5px;}#" + objId + " a:hover,#" + objId + " a:active{color:#638425;border:1px solid #85bd1e;background-color:#f1ffd6}"; break; case "3": strCss = "#" + objId + "{text-align:center;padding:10px;}#" + objId + " a{text-decoration:none;border:1px solid #ddd;color:#aaa;margin:2px;padding:2px 5px;}#" + objId + " .cur{border:1px solid #e0e0e0;color:#aaa;background-color:#f0f0f0;font-weight:blod;margin:2px;padding:2px 5px;}#" + objId + " .disab{border:#f3f3f3 1px solid;color:#ccc;margin:2px;padding:2px 5px;}#" + objId + " a:hover,#" + objId + " a:active{color:#638425;border:1px solid #a0a0a0;}"; break; case "4": strCss = "#" + objId + "{text-align:center;padding:10px;}#" + objId + " a{text-decoration:none;border:1px solid #dedfde;color:#0061de;margin:2px;padding:2px 5px;}#" + objId + " .cur{color:#ff0084;font-weight:blod;margin:2px;padding:2px 5px;}#" + objId + " .disab{color:#adaaad;margin:2px;padding:2px 5px;}#" + objId + " a:hover,#" + objId + " a:active{color:#fff;border:1px solid #000;background-color:#0061de;}"; break; case "5": strCss = "#" + objId + "{text-align:center;height:50px;font-family:Verdana}#" + objId + " a{float:left;margin:10px 1px 0 1px;width:26px;height:20px;line-height:20px;color:#91ad00;font:12px;text-align:center;text-decoration:none;border:1px solid #91ad00}#" + objId + " a:hover{position:relative;margin:0 -10px 0 -10px;padding:0 9px;width:30px;line-height:40px;height:40px;color:#000;border:1px solid #91ad00;background:url() no-repeat left -10px;font-size:18px;font-weight:bold}#" + objId + " span{float:left;line-height:165%;padding:0px 8px;margin:10px 1px 0 1px;border:1px solid #91ad00;background:#91ad00;color:#FFF;font-weight:bold;}" break; case "6": strCss = "#" + objId + "{text-align:center;padding:10px;}#" + objId + " a{text-decoration:none;border:1px solid #ddd;color:#ff9900;margin:2px;padding:2px 5px;}#" + objId + " .cur{border:1px solid #ff9900;color:#fff;background-color:#ff9900;font-weight:blod;margin:2px;padding:2px 5px;}#" + objId + " .disab{border:#f3f3f3 1px solid;color:#ccc;margin:2px;padding:2px 5px;}#" + objId + " a:hover,#" + objId + " a:active{color:#638425;border:1px solid #FFBE5D;background-color:#FFE3B9}"; break; } $("head").append(""); } page.toWcmPage = function(p) { var thisPageNum = parseInt(p), pageCount = args.pageCount, pageName = args.pageName, pageExt = args.pageExt; isNaN(thisPageNum) && (thisPageNum = 1); if (thisPageNum <= 1) thisPageNum = 1; else if (thisPageNum >= pageCount) thisPageNum = pageCount; if (thisPageNum == 1) { window.location.href="qbhfObnf" + "." + pageExt; } else { window.location.href="qbhfObnf" + "_" + (thisPageNum - 1) + "." + pageExt; } } page.cWasHtml = function() { //根据was检索或者url检索返回的json格式数据进行生成,直接通过wcm的修改而成,性能应该存在改进的空间 var rn = args.recordCount || 0, n = args.pageCount || 1, i = args.pageIndex || 1; var num = args.pageNumLength || 3, sHtmlNum = "", //页码文本 sHtmlDesc = args.pageInfo || "共有#recordCount#条信息 共#pageCount#页 当前第#pageIndex#页", //描述文本 sHtmlDescNoData = args.pageInfoNoData || "没有找到任何信息", sHtmlGo = "", //下拉或输入文本 type = args.toPageType || 0, showFirst = args.showFirst || 0, firstHtml = args.firstHtml || ["首页", "上一页", "下一页", "尾页"], style = args.style || "0", pageBarId = args.pageBarId || "pageBar"; if (rn > 0) { //sHtmlDesc = "共有" + rn + "条信息 共" + n + "页 当前第" + i + "页"; sHtmlDesc = sHtmlDesc.replace("#recordCount#", rn).replace("#pageCount#", n).replace("#pageIndex#", i); } else { return sHtmlDescNoData; } if (n <= 1) { return sHtmlDesc; } if (showFirst != 0) { //生成首页、上一页 、1 if (i == 1) { sHtmlNum += "" + firstHtml[0] + ""; sHtmlNum += "" + firstHtml[1] + ""; //sHtmlNum += "1"; } else { sHtmlNum += "" + firstHtml[0] + ""; sHtmlNum += "" + firstHtml[1] + ""; } } if (num > 0) { //以下进行计算,对长度不足的在另外一段补齐,如设置当前页码前后各显示3页,但是如果处于第2页时,前面只有1页,这个时候在后面多补2个页码 var b = i - num, e = i + num, n_b = 0, n_e = 0; for (k = b; k <= e; k++) { if (k < 1) { n_e++; } else if (k > n) { n_b++; } } if (n_e > 0) e = e + n_e; if (n_b > 0) b = b - n_b; //计算结束 for (k = b; k <= e; k++) { if (k == i) { sHtmlNum += "" + k + ""; } else if (k == 1) { sHtmlNum += "" + k + ""; } else if (k > 1 && k < n + 1) { sHtmlNum += "" + k + ""; } } } if (showFirst != 0) { if (i == n) { sHtmlNum += "" + firstHtml[2] + ""; sHtmlNum += "" + firstHtml[3] + ""; } else { sHtmlNum += "" + firstHtml[2] + ""; sHtmlNum += "" + firstHtml[3] + ""; } } if (type == 1) { //显示输入框 sHtmlGo = "跳转到第 57 ) event.returnValue = false;\" value=\"" + i + "\" \/>页"; } else if (type == 2) { //显示下拉框 sHtmlGo = ""; if (i == 1) { sHtmlGo += "第1页<\/option>"; } else { sHtmlGo += "第1页<\/option>"; } for (k = 2; k < i; k++) { sHtmlGo += "第" + k + "页<\/option>"; } if (i > 1) { sHtmlGo += "第" + k + "页<\/option>"; } for (k = i + 1; k < n + 1; k++) { sHtmlGo += "第" + k + "页<\/option>"; } sHtmlGo += "<\/select>"; } else { } if (!window.toPage) { window.toPage = page.toPage; } return sHtmlDesc + sHtmlNum + sHtmlGo; } page.toPage = function(p) { page.loadData(parseInt(p)); } page.setLoadDataUrl = function(sUrl) { args.loadDataUrl = sUrl; } page.loadData = function(p) { //专门针对信息公开目录 //alert("跳到第"+p+"页"); var _urlServ = args.loadDataUrl, //获取数据的url _dataId = args.loadDataId, //存放html的对象ID _pageBarId = args.pageBarId || "pageBar"; if (_urlServ.indexOf("htm") > -1) { //包含htm表示是通过wcm引入的数据,需要对第一页进行处理 if (p > 1) { _urlServ = _urlServ.replace(".htm", "_" + (p - 1) + ".htm"); } } else { _urlServ = (p > 1) ? (_urlServ + "&page=" + p) : _urlServ; } //alert(_urlServ); $.ajax({ url: _urlServ, dataType: "text", success: function(msg) { var str = $.trim(msg); str = str.replace(new RegExp("\n", "gm"), ""); //过滤可能存在的换行 str = str.replace(new RegExp("\r", "gm"), ""); //过滤可能存在的换行 //var s = JSON.parse( str ); //该方法在ie8文档模式以下不兼容 var s = (new Function('return' + str))(); // var html = '索引号名称发布机构内容概述发文时间文号'; for (i = 0; i < (s.docs.length - 1); i++) { //html += s.docs.docid; var cls = ""; //if( i%2 == 1) cls=" class=\"bg\""; html += '' + s.docs[i].idxid + '' + s.docs[i].doctitle + '' + s.docs[i].puborg + '' + s.docs[i].docabs + '' + s.docs[i].pubdate + '' + s.docs[i].fileno + ''; } //alert(html); args.recordCount = s.count; args.pageCount = s.pagecount; args.pageIndex = p; $("#" + _dataId).html(html); $("#" + _pageBarId).html(page.cWasHtml()); //$("#xxgk_list").html(html); //$("#page_but").html( createPageHTML(s.count,s.pagenum,curPage) ); //window.curPageBarAttr.nMaxPageCount = 0; //window.curPageBarAttr.nPageCount = s.pagenum; //window.curPageBarAttr.nPageIndex = curPage; }, error: function(e) {} }); } return page; } }; /** tabShow在页面上使用选项卡切换 使用方法如下: 人事信息 资金信息 法律法规 */ function tabShow(name, cls_show, cls_hide, cnt, cur) { //所属切换的名称与id中一致,选中时选项卡的样式,未选中时选项卡的样式,总标签数,当前标签序号,从1开始 for (i = 1; i <= cnt; i++) { if (i == cur) { $('#div_' + name + '_' + i).show(); $('#tab_' + name + '_' + i).attr('class', cls_show); } else { $('#div_' + name + '_' + i).hide(); $('#tab_' + name + '_' + i).attr('class', cls_hide); } } } /** chFontSize( i , obj , CssList ) chF( i ) 细览大小字体切换 使用方法一: 在页面上定义方法来进行调用 function fo(i){ var dlCon = $("#detailContent p,#detailContent span,#detailContent td"); var CssList = [ {"font-size":"16px","line-height":"30px"} , {"font-size":"14px","line-height":"24px"} , {"font-size":"12px","line-height":"20px"} ] ; chFontSize( i , dlCon , CssList ); } 大 中 小 方法二: 设置正文的ID为detailContent,则可以直接执行大 */ function chFontSize(i, obj, CssList) { var _cssList = CssList || [{ "font-size": "16px", "line-height": "30px" }, { "font-size": "14px", "line-height": "24px" }, { "font-size": "12px", "line-height": "20px" }]; if (i < _cssList.length) { obj.css(_cssList[i]); } } function chF(i) { var dlCon = $("#detailContent"); var CssList = [{ "font-size": "16px", "line-height": "30px" }, { "font-size": "14px", "line-height": "24px" }, { "font-size": "12px", "line-height": "20px" }]; chFontSize(i, dlCon, CssList); } /** jQuery 插件 initInput ,用于初始化输入框的方法,当点击输入框时,如果值为原始值,则自动清空;如果鼠标移出输入框时,值为空,则自动填充原始值 使用方法: $("#inputId").initInput() */ (function($) { $.fn.initInput = function() { this.each(function() { var defV = $(this)[0].defaultValue; $(this).focus(function() { if ($(this).val() == defV) { $(this).val(''); } }).blur(function() { if ($(this).val() == '') { $(this).val($(this)[0].defaultValue); } }); }); }; })(jQuery); /** jQuery 插件 imgFocus 使用方法: $("#img").imgFocus() */ (function($) { $.fn.imgFocus = function(options) { var defaults = { width: 240, height: 200, textHeight: 0, style: 1, picList: "", linkList: "", textList: "" }; // Extend our default options with those provided. var opts = $.extend(defaults, options); var _w = defaults.width || 240, _h = defaults.height || 200, _th = defaults.textHeight || 0, _s = defaults.style || 1; var p = defaults.picList, l = defaults.linkList, t = defaults.textList.replace(/\"/gi, """); var _fh = _h + _th; var f = "focus1.swf", sHtml = ""; switch (_s) { case 1: f = Fjdz.resPath + "focus1.swf"; break; case 2: f = Fjdz.resPath + "focus2.swf"; break; default: f = Fjdz.resPath + "focus1.swf"; break; } sHtml += ''; sHtml += ''; sHtml += ''; sHtml += ''; sHtml += ''; sHtml += ''; this.each(function() { $(this).html(sHtml); }); }; })(jQuery); /** 对联广告,使用方法及参数如下 fjdzDuilian.init({ "img1":"./dl/images/P020130131359297610436.jpg", //左边图地址,如果图1和图2都为空,则不显示./dl/images/P020130131359297610436.jpg "img2":"./dl/images/P020130131359297610436.jpg",//右边图地址 "link1":"", //左边图链接 "link2":"",//右边图链接 "imgWidth":"",//对联层宽度,应设置为比图片宽度大,默认为80px "imgheight":"",//对联层高度,应设置为比图片高度大,默认为380px "imgTop":"",//图片位置,距离顶部的像素,默认为120px "beginTime":"02/05/2013",//开始时间,格式为MM/dd/yyyy "endTime":"02/25/2013"//截止时间,格式为MM/dd/yyyy }); */ var fjdzDuilian = { init: function(o) { if (o.img1 == "" && o.img2 == "") { return; } if (o.beginTime != "") { //开始时间 var sss = Date.parse(o.beginTime) - Date.parse(new Date()); if (sss > 0) { return; } } if (o.endTime != "") { //结束时间 var sss = Date.parse(o.endTime) - Date.parse(new Date()); if (sss < 0) { return; } } var shtml = ''; if (o.link1 == "") { shtml += ''; } else { shtml += ''; } if (o.link2 == "") { shtml += ''; } else { shtml += ''; } $("body").append(shtml); var imgWidth = o.imgWidth || "80px", imgHeight = o.imgHeight || "380px", imgTop = o.imgTop || "120px"; $(".fjdzDL").css({ width: imgWidth, height: imgHeight, display: "block", position: "absolute", top: imgTop, cursor: "pointer" }); $(".fjdzDL a").css({ display: "block", position: "absolute", top: "0", left: "0", width: imgWidth, height: imgHeight, background: "#FFF", "z-index": "300" }); $("#fjdzDL_left").css({ left: "5px", float: "left", "margin-left": "5px", background: "url(" + o.img1 + ") no-repeat -2px -3px" }); $("#fjdzDL_right").css({ right: "5px", float: "right", "margin-right": "10px", background: "url(" + o.img2 + ") no-repeat -2px -3px" }); $(".fjdzDL span").css({ display: "block", position: "absolute", top: "0", right: "0", width: "25px", height: "25px", background: "url(" + Fjdz.resPath + "close.png) no-repeat", "z-index": "301", cursor: "pointer" }); $("#fjdzDL_right span").css("left", "0"); $(function() { var name = ".fjdzDL"; var menuYloc = null; menuYloc = parseInt($(name).css("top").substring(0, $(name).css("top").indexOf("px"))) $(window).scroll(function() { var offset = menuYloc + $(document).scrollTop() + "px"; $(name).animate({ top: offset }, { duration: 500, queue: false }); }); $('.fjdzDL a').css('opacity', '0'); $(".fjdzDL span").click(function() { $(this).parent(".fjdzDL").siblings(".fjdzDL").remove(); $(this).parent(".fjdzDL").remove(); }); }) } }; /*漂浮*/ /* * jQuery Plugins imgFloat v1011 * 使用说明: * speed //元素移动速度 * xPos //元素一开始左距离 * yPos //元素一开始上距离 * $('#div1').imgFloat({speed:30,xPos:10,yPos:10}); * $('#div2').imgFloat(); //不给参数默认(speed:10,xPos:0,yPos:0) */ (function($) { jQuery.fn.imgFloat = function(options) { var own = this; var xD = 0; var yD = 0; var i = 1; var settings = { speed: 10, xPos: 0, yPos: 0 }; jQuery.extend(settings, options); var ownTop = settings.xPos; var ownLeft = settings.yPos; own.css({ position: "absolute", cursor: "pointer" }); function imgPosition() { var winWidth = $(window).width() - own.width(); var winHeight = $(window).height() - own.height(); if (xD == 0) { ownLeft += i; own.css({ left: ownLeft }); if (ownLeft >= winWidth) { ownLeft = winWidth; xD = 1; } } if (xD == 1) { ownLeft -= i; own.css({ left: ownLeft }); if (ownLeft <= 0) xD = 0; } if (yD == 0) { ownTop += i; own.css({ top: ownTop }); if (ownTop >= winHeight) { ownTop = winHeight; yD = 1; } } if (yD == 1) { ownTop -= i; own.css({ top: ownTop }); if (ownTop <= 0) yD = 0; } } var imgHover = setInterval(imgPosition, settings.speed); own.hover(function() { clearInterval(imgHover); }, function() { imgHover = setInterval(imgPosition, settings.speed); }); } })(jQuery); //$('#img_float').imgFloat({speed:30,xPos:10,yPos:10}); /** * @classDescription 模拟Marquee,无间断滚动内容 * @author Aken Li(www.kxbd.com) * @date 2009-07-17 * @DOM * * * * * * * @CSS * #marquee {width:200px;height:50px;overflow:hidden;} * @Usage * $('#marquee').kxbdMarquee(options); * @options * isEqual:true,//所有滚动的元素长宽是否相等,true,false * loop: 0,//循环滚动次数,0时无限 * direction: 'left',//滚动方向,'left','right','up','down' * scrollAmount:1,//步长 * scrollDelay:20//时长 * controlBtn:{left:'#goL',right:'#goR'},//控制加速滚动的按钮ID,有四个属性left,right,up,down分别对应四个方向 * newAmount:4,//加速滚动的步长 * eventA:'mouseenter',//鼠标事件,加速 * eventB:'mouseleave'//鼠标事件,原速 */ (function($) { $.fn.kxbdMarquee = function(options) { var opts = $.extend({}, $.fn.kxbdMarquee.defaults, options); return this.each(function() { var $marquee = $(this); //滚动元素容器 var _scrollObj = $marquee.get(0); //滚动元素容器DOM var scrollW = $marquee.width(); //滚动元素容器的宽度 var scrollH = $marquee.height(); //滚动元素容器的高度 var $element = $marquee.children(); //滚动元素 var $kids = $element.children(); //滚动子元素 var scrollSize = 0; //滚动元素尺寸 var _type = (opts.direction == 'left' || opts.direction == 'right') ? 1 : 0; //滚动类型,1左右,0上下 //防止滚动子元素比滚动元素宽而取不到实际滚动子元素宽度 $element.css(_type ? 'width' : 'height', 10000); //获取滚动元素的尺寸 if (opts.isEqual) { scrollSize = $kids[_type ? 'outerWidth' : 'outerHeight']() * $kids.length; } else { $kids.each(function() { scrollSize += $(this)[_type ? 'outerWidth' : 'outerHeight'](); }); } //滚动元素总尺寸小于容器尺寸,不滚动 if (scrollSize < (_type ? scrollW : scrollH)) return; //克隆滚动子元素将其插入到滚动元素后,并设定滚动元素宽度 $element.append($kids.clone()).css(_type ? 'width' : 'height', scrollSize * 2); var numMoved = 0; function scrollFunc() { var _dir = (opts.direction == 'left' || opts.direction == 'right') ? 'scrollLeft' : 'scrollTop'; if (opts.loop > 0) { numMoved += opts.scrollAmount; if (numMoved > scrollSize * opts.loop) { _scrollObj[_dir] = 0; return clearInterval(moveId); } } if (opts.direction == 'left' || opts.direction == 'up') { var newPos = _scrollObj[_dir] + opts.scrollAmount; if (newPos >= scrollSize) { newPos -= scrollSize; } _scrollObj[_dir] = newPos; } else { var newPos = _scrollObj[_dir] - opts.scrollAmount; if (newPos <= 0) { newPos += scrollSize; } _scrollObj[_dir] = newPos; } }; //滚动开始 var moveId = setInterval(scrollFunc, opts.scrollDelay); //鼠标划过停止滚动 $marquee.hover( function() { clearInterval(moveId); }, function() { clearInterval(moveId); moveId = setInterval(scrollFunc, opts.scrollDelay); } ); //控制加速运动 if (opts.controlBtn) { $.each(opts.controlBtn, function(i, val) { $(val).bind(opts.eventA, function() { opts.direction = i; opts.oldAmount = opts.scrollAmount; opts.scrollAmount = opts.newAmount; }).bind(opts.eventB, function() { opts.scrollAmount = opts.oldAmount; }); }); } }); }; $.fn.kxbdMarquee.defaults = { isEqual: true, //所有滚动的元素长宽是否相等,true,false loop: 0, //循环滚动次数,0时无限 direction: 'left', //滚动方向,'left','right','up','down' scrollAmount: 1, //步长 scrollDelay: 20, //时长 newAmount: 3, //加速滚动的步长 eventA: 'mousedown', //鼠标事件,加速 eventB: 'mouseup' //鼠标事件,原速 }; $.fn.kxbdMarquee.setDefaults = function(settings) { $.extend($.fn.kxbdMarquee.defaults, settings); }; })(jQuery); /*基于JQ的带按钮控制图片左右无间隙滚动插件 *作者 林吉 *QQ 317365887 *邮箱 317365887@qq.com */ (function($) { $.fn.movePicX = function(options) { var opts = $.extend({}, $.fn.movePicX.defaults, options); return this.each(function() { var $this = $(this); var $scrollObj = $(opts.scrollObj, $this), $target = $scrollObj.find(opts.targetObj), _targetSize, _num, _autoPlay, _stop = false, $preBtn = $(opts.preBtn, $this), $nextBtn = $(opts.nextBtn, $this), $preBtnO = $(opts.preBtnO), //lyf $nextBtnO = $(opts.nextBtnO), //lyf _targetSize = $target.width(), _num = $target.length; $scrollObj.css("width", _num * _targetSize); $preBtn.click(function() { xToLeft(); }); $nextBtn.click(function() { xToRight(); }); $preBtnO.click(function() { //lyf xToLeft(); }); $nextBtnO.click(function() { //lyf xToRight(); }); function xToLeft() { if (!$scrollObj.is(":animated")) { $scrollObj.animate({ left: "-" + _targetSize }, opts.easing, function() { $scrollObj.find(opts.targetObj + ":first").appendTo($scrollObj); $scrollObj.css({ "left": "0" }); if (opts.autoPlay && !_stop) _autoPlay = setTimeout(xToLeft, opts.timer); }); } } function xToRight() { if (!$scrollObj.is(":animated")) { $scrollObj.find(opts.targetObj + ":last").prependTo($scrollObj); $scrollObj.css({ "left": -_targetSize }); $scrollObj.stop().animate({ "left": 0 }, opts.easing, function() { if (opts.autoPlay && !_stop) _autoPlay = setTimeout(xToRight, opts.timer); }); } } // 如果滑鼠移入 $block 時 $this.hover(function() { _stop = true; clearTimeout(_autoPlay); }, function() { _stop = false; _autoPlay = setTimeout(xToRight, opts.timer); }); if (opts.autoPlay) { _autoPlay = setTimeout(xToRight, opts.timer); } }); }; $.fn.movePicX.defaults = { scrollObj: '.scrollObj', targetObj: "li", //被控制添加子对象 preBtn: '.btnPre', preBtnO: '#btnPre', //如果控制的按钮不在元素内的话 nextBtn: '.btnNext', nextBtnO: '#btnNext', autoPlay: true, speed: 1000, timer: 3000, easing: 'easeInOutExpo' }; })(jQuery); /*基于JQ的上下左右无间隙移动插件 *作者 林吉 *QQ 317365887 *邮箱 317365887@qq.com 使用时要注意样式表的控制,父元素要设置高度/宽度,超出隐藏,position:relative; 自身元素要设置position:absolute,高度/宽度 $("#demo3").moveXY({effect:"xToRight"}); targetObj 被控制对象,默认li(可以是标签名或者类名) effect 动画效果,默认yToBottom(yToBottom-从上到下 yToTop-从下到上 xToLeft-从右到左 xToRight-从左到右) speed 动画时间,默认1000 timer 自动播放时间间隔,默认3000 */ (function($) { $.fn.moveXY = function(options) { var opts = $.extend({}, $.fn.moveXY.defaults, options); return this.each(function() { var $this = $(this); var $li = $this.find(opts.targetObj), slideSize; if (opts.effect == "yToBottom" || opts.effect == "yToTop") { slideSize = $li.height(); } else { slideSize = $li.width(); var _num = $li.length; $this.css("width", _num * slideSize); } $.fn.moveXY.effects[opts.effect]($this, opts, $li, slideSize); }); }; $.fn.moveXY.defaults = { targetObj: "li", //被控制对象 effect: "yToTop", speed: 1000, timer: 3000 }; $.fn.moveXY.effects = { yToBottom: function($this, opts, $li, slideH) { var doPlay = function() { if (!$this.is(":animated")) { $this.animate({ "top": "+" + slideH }, opts.speed, function() { var $cl = $this.find(opts.targetObj + ":last").clone(true); $cl.css({ opacity: 0, filter: 'alpha(opacity=0)' }); $this.prepend($cl); $this.css("top", 0); $cl.animate({ "opacity": 1 }, opts.speed, function() { $this.find(opts.targetObj + ":last").remove(); }); }); } } //自动播放函数 var autoPlay = setInterval(doPlay, opts.timer); $li.mouseenter(function() { if (autoPlay) { clearInterval(autoPlay); } }).mouseleave(function() { if (autoPlay) { clearInterval(autoPlay); } autoPlay = setInterval(doPlay, opts.timer); }); }, yToTop: function($this, opts, $li, slideH) { var doPlay = function() { if (!$this.is(":animated")) { $this.animate({ top: '-' + slideH }, opts.speed, function() { var $cl = $this.find(opts.targetObj + ":first"); $cl.css({ opacity: 0, filter: 'alpha(opacity=0)' }); $this.append($cl); $this.css("top", 0); $cl.animate({ "opacity": 1 }, opts.speed); }); } } //自动播放函数 var autoPlay = setInterval(doPlay, opts.timer); $li.mouseenter(function() { if (autoPlay) { clearInterval(autoPlay); } }).mouseleave(function() { if (autoPlay) { clearInterval(autoPlay); } autoPlay = setInterval(doPlay, opts.timer); }); }, xToLeft: function($this, opts, $li, slideW) { var doPlay = function() { if (!$this.is(":animated")) { $this.animate({ left: "-" + slideW }, function() { $this.find(opts.targetObj + ":first").appendTo($this); $this.css({ "left": "0" }); }); } } var autoPlay = setInterval(doPlay, opts.timer); $li.mouseenter(function() { if (autoPlay) { clearInterval(autoPlay); } }).mouseleave(function() { if (autoPlay) { clearInterval(autoPlay); } autoPlay = setInterval(doPlay, opts.timer); }); }, xToRight: function($this, opts, $li, slideW) { var doPlay = function() { if (!$this.is(":animated")) { $this.find(opts.targetObj + ":last").prependTo($this); $this.css({ "left": -slideW }); $this.stop().animate({ "left": 0 }); } } var autoPlay = setInterval(doPlay, opts.timer); $li.mouseenter(function() { if (autoPlay) { clearInterval(autoPlay); } }).mouseleave(function() { if (autoPlay) { clearInterval(autoPlay); } autoPlay = setInterval(doPlay, opts.timer); }); } }; })(jQuery);