Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Div a tendina dentro altro div a tendina

    ciao a tutti

    sto costruendo la seguente pagina


    cliccando sulla freccia più interna diventa così:


    ricliccando ritorna alla prima situazione.

    l'effetto tendina per i due contenitori (sezione e busta paga) li ho presi dagli script a disposizione di questo tipo (animatedcollapse.js)

    vorrei che la dimensione in lunghezza del div più esterno seguisse quella del div più interno quando a questo viene applicato l'effetto tendina.

    grazie.
    amdplanet.it

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Verifica come imposta l'altezza del primo div lo script o se sono impostati degli stili
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    non ho stili. per l'altezza fa tutto lui, il codice è questo

    var collapse2=new animatedcollapse("sezione1", 400, false, 'contract');


    al click sulla freccia si chiama collapse3.slideit();

    Codice PHP:
    //Animated Collapsible DIV- Author: Dynamic Drive ([url]http://www.dynamicdrive.com[/url])
    //Last updated June 27th, 07'. Added ability for a DIV to be initially expanded.

    var uniquepageid=window.location.href.replace("http://"+window.location.hostname"").replace(/^\//, "") //get current page path and name, used to uniquely identify this page for persistence feature

    function animatedcollapse(divIdanimatetimepersistexpandinitstate){
        
    this.divId=divId
        this
    .divObj=document.getElementById(divId)
        
    this.divObj.style.overflow="hidden"
        
    this.timelength=animatetime
        this
    .initstate=(typeof initstate!="undefined" && initstate=="block")? "block" "contract"
        
    this.isExpanded=animatedcollapse.getCookie(uniquepageid+"-"+divId//"yes" or "no", based on cookie value
        
    this.contentheight=parseInt(this.divObj.style.height)
        var 
    thisobj=this
        
    if (isNaN(this.contentheight)){ //if no CSS "height" attribute explicitly defined, get DIV's height on window.load
            
    animatedcollapse.dotask(window, function(){thisobj._getheight(persistexpand)}, "load")
            if (!
    persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes"//Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
                
    this.divObj.style.visibility="hidden" //hide content (versus collapse) until we can get its height
        
    }
        else if (!
    persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes"//Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
            
    this.divObj.style.height=//just collapse content if CSS "height" attribute available
        
    if (persistexpand)
            
    animatedcollapse.dotask(window, function(){animatedcollapse.setCookie(uniquepageid+"-"+thisobj.divIdthisobj.isExpanded)}, "unload")
    }

    animatedcollapse.prototype._getheight=function(persistexpand){
        
    this.contentheight=this.divObj.offsetHeight
        
    if (!persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes"){ //Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
            
    this.divObj.style.height=//collapse content
            
    this.divObj.style.visibility="visible"
        
    }
        else 
    //else if persistence is enabled AND this content should be expanded, define its CSS height value so slideup() has something to work with
            
    this.divObj.style.height=this.contentheight+"px"
    }


    animatedcollapse.prototype._slideengine=function(direction){
        var 
    elapsed=new Date().getTime()-this.startTime //get time animation has run
        
    var thisobj=this
        
    if (elapsed<this.timelength){ //if time run is less than specified length
            
    var distancepercent=(direction=="down")? animatedcollapse.curveincrement(elapsed/this.timelength) : 1-animatedcollapse.curveincrement(elapsed/this.timelength)
        
    this.divObj.style.height=distancepercent this.contentheight +"px"
        
    this.runtimer=setTimeout(function(){thisobj._slideengine(direction)}, 10)
        }
        else{ 
    //if animation finished
            
    this.divObj.style.height=(direction=="down")? this.contentheight+"px" 0
            this
    .isExpanded=(direction=="down")? "yes" "no" //remember whether content is expanded or not
            
    this.runtimer=null
        
    }
    }


    animatedcollapse.prototype.slidedown=function(){
        if (
    typeof this.runtimer=="undefined" || this.runtimer==null){ //if animation isn't already running or has stopped running
            
    if (isNaN(this.contentheight)) //if content height not available yet (until window.onload)
                
    alert("Please wait until document has fully loaded then click again")
            else if (
    parseInt(this.divObj.style.height)==0){ //if content is collapsed
                
    this.startTime=new Date().getTime() //Set animation start time
                
    this._slideengine("down")
            }
        }
    }

    animatedcollapse.prototype.slideup=function(){
        if (
    typeof this.runtimer=="undefined" || this.runtimer==null){ //if animation isn't already running or has stopped running
            
    if (isNaN(this.contentheight)) //if content height not available yet (until window.onload)
                
    alert("Please wait until document has fully loaded then click again")
            else if (
    parseInt(this.divObj.style.height)==this.contentheight){ //if content is expanded
                
    this.startTime=new Date().getTime()
                
    this._slideengine("up")
            }
        }
    }

    animatedcollapse.prototype.slideit=function(){
        if (
    isNaN(this.contentheight)) //if content height not available yet (until window.onload)
            
    alert("Please wait until document has fully loaded then click again")
        else if (
    parseInt(this.divObj.style.height)==0)
            
    this.slidedown()
        else if (
    parseInt(this.divObj.style.height)==this.contentheight)
            
    this.slideup()
    }


    animatedcollapse.dotask=function(targetfunctionreftasktype){ //assign a function to execute to an event handler (ie: onunload)
        
    var tasktype=(window.addEventListener)? tasktype "on"+tasktype
        
    if (target.addEventListener)
            
    target.addEventListener(tasktypefunctionreffalse)
        else if (
    target.attachEvent)
            
    target.attachEvent(tasktypefunctionref
    amdplanet.it

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non conosco quel widget/script e non ho tempo di studiarmelo, ritengo che sia legata a quel 400 della prima funzione che impostando un'altezza fissa blocca il contenuto alla stessa, e solo un ipotesi (non vedendo nulla in funzione), se così è l'operazione + rapida è aumentare quel dato, modificarlo dopo ritengo sia troppo complesso.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    ciao no, quel 400 indica il tempo di durata dell'effetto. grazie comunque.
    amdplanet.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.