⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsfunc.foldout.js

📁 Typo3, 开源里边最强大的
💻 JS
字号:
/*****************************************************************  JavaScript DHTML foldout menu** $Id: jsfunc.foldout.js 48 2003-10-26 17:07:44Z typo3 $* ***  Copyright notice* *  (c) 1998-2003 Kasper Sk錼h鴍*  All rights reserved**  This script is part of the TYPO3 tslib/ library provided by*  Kasper Sk錼h鴍 <kasper@typo3.com> together with TYPO3**  Released under GNU/GPL (see license file in tslib/)* *  This script is distributed in the hope that it will be useful,*  but WITHOUT ANY WARRANTY; without even the implied warranty of*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.* *  This copyright notice MUST APPEAR in all copies of this script***************************************************************///object constructor...function GF_makeMenu(obj,nest,adjustH){	nest= (!nest)?'':'document.'+nest+'.';	this.el= bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):document.getElementById(obj);	   	this.css= bw.ns4?this.el:this.el.style;	this.ref= bw.ns4?this.el.document:document;			this.x= (bw.ns4||bw.opera)?this.css.left:this.el.offsetLeft;	this.y= (bw.ns4||bw.opera)?this.css.top:this.el.offsetTop;	this.height= (bw.ie4||bw.ie5||bw.ns6)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.opera?this.css.pixelHeight:0;    this.vis= GF_visible;	this.hideIt= GF_hideIt;    this.showIt= GF_showIt;    this.moveIt= GF_moveIt;    this.moveBy= GF_moveBy;		// Added by Kasper Sk錼h鴍:	if (adjustH)	this.height = this.height+adjustH;	return this}//object methods...function GF_showIt(){this.css.visibility='visible'}function GF_hideIt(){this.css.visibility='hidden'}function GF_visible(){if(this.css.visibility=='visible' || this.css.visibility=='VISIBLE' || this.css.visibility=='show') return true;}function GF_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}function GF_moveBy(x,y){this.moveIt(this.x+x,this.y+y)}/************************************************************************************These functions GF_menu, GF_doMove, and GF_placeAll open and close the menu.************************************************************************************/function GF_menu(num){    //If GFV_stayFolded is false, one fold is open, and it's not the one you clicked, we enter this if structure.	if(bw.bw && !GFV_active && !GFV_stayFolded && GFV_currentFold!=null && GFV_currentFold!=num){        GFV_active= true	        //Adjusting the speed of the animation.        GFV_foldStep1= oSub[num].height/GFV_foldSpeed        GFV_foldStep2= oSub[GFV_currentFold].height/-GFV_foldSpeed        //Setting the images correctly, showing the new sub.        if(GFV_foldImg) oTop[num].ref['imgA'+num].src=GFV_exImg.src        if(GFV_foldImg) oTop[GFV_currentFold].ref['imgA'+GFV_currentFold].src=GFV_unImg.src        oSub[num].showIt()		        //Keeping track of what fold is opened, then do the move.        var temp= GFV_currentFold        GFV_currentFold= num        GF_doMove(num+1,temp+1)    }    //In the simple cases, we enter this else if structure.    else if(bw.bw && !GFV_active){        GFV_active= true	        //If the sub is not visible, show it, change it's image, and expand it.		if(!oSub[num].vis()){			oSub[num].showIt()			if(GFV_foldImg)oTop[num].ref['imgA'+num].src=GFV_exImg.src            GFV_foldStep1=oSub[num].height/GFV_foldSpeed            GFV_currentFold=num            GF_doMove(num+1,null)		}        //If the sub is visible, change it's image and collapse it.        else{			if(GFV_foldImg)oTop[num].ref['imgA'+num].src=GFV_unImg.src            GFV_foldStep2=oSub[num].height/-GFV_foldSpeed            GFV_currentFold=null            GF_doMove(null,num+1)		}	}}function GF_doMove(expand,collapse){    GFV_step++    if(expand!=null) for(var i=expand;i<oTop.length;i++){ oTop[i].moveBy(0,GFV_foldStep1) }    if(collapse!=null) for(var i=collapse;i<oTop.length;i++){ oTop[i].moveBy(0,GFV_foldStep2) }    //If the animation is not done yet, activate GF_doMove again.    if(GFV_step<GFV_foldSpeed) setTimeout('GF_doMove('+expand+','+collapse+')',GFV_foldTimer)    //Else clean up and bail out.    else{        GFV_step=0        if(collapse!=null) oSub[collapse-1].hideIt()        GF_placeAll()    }}//This function places everything at the exact right place and signals that the animation is done.function GF_placeAll(){    for(var i=1;i<oTop.length;i++){         if(oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height+oSub[i-1].height)         else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)    }    GFV_active= false}/*********************************************************************The init function... there should be no need to change anything here.*********************************************************************/function GF_initFoldout(){    //Making the object arrays...	oTop= new Array()	oSub= new Array()    //Making the objects and hiding the subs...    for(var i=1;i<=GFV_foldNumber+1;i++){        oTop[i-1]= new GF_makeMenu('divTop'+i,'divCont',GFV_adjustTopHeights);        oSub[i-1]= new GF_makeMenu('divSub'+i,'divCont.document.divTop'+i, GFV_adjustSubHeights);        oSub[i-1].hideIt();    }    //Positioning the top objects...    oTop[0].moveIt(0,0)	for(var i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }    //Making the containing menu object and showing it...  	oCont= new GF_makeMenu('divCont')  	oCont.showIt()}function GF_resizeForOpera()	{	if(bw.opera){ //Opera 5 resize fix.		if(GFV_scrX<innerWidth-10 || GFV_scrY<innerHeight-10 || GFV_scrX>innerWidth+10 || GFV_scrY>innerHeight+10){			GFV_scrX= innerWidth; 			GFV_scrY= innerHeight;				GF_initFoldout();		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -