Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di yenn
    Registrato dal
    Mar 2012
    Messaggi
    5

    conflitto tra librerie e malfunzionamento

    Ciao ragazzi,

    sto lavorando a un sito in html5 e js e ho il seguente problema:

    in pratica ho una slider di immagini e ho una animazione per il logo, ma insieme proprio non vogliono funzionare! non capisco cosa sbaglio e a cosa sia dovuto il conflitto dei due script.
    ho già cercato qualche soluzione in rete e le ho provate tutte ma nessuna sembra risolvere questo problema. Credo (dall'alto della mia somma ignoranza) che sia perchè i due script attingono dalla stessa libreria (jquery-easing) ma con precedenti siti non è mai stato un problema....

    qui potete trovare la slider funzionante, l'animazione logo funzionante (passateci sopra col mouse) e le due cose insieme che non funzionano affatto... il logo non si anima e lo slider non cambia pagina.

    nel caso qualcuno si scocciasse di andare a spulciare il codice riporto qui le opzioni dei due script incriminati:

    ANIMAZIONE LOGO:
    Codice PHP:
    jQuery.noConflict(); $(document).ready(function() { //Custom settings var style_in = 'easeOutBounce'; var style_out = 'jswing'; var speed_in = 1000; var speed_out = 1000; //Calculation for corners var neg = Math.round($('.qitem').width() / 2) * (-1); var pos = neg * (-1); var out = pos * 2; $('.qitem').each(function () { url = $(this).find('a').attr('href'); img = $(this).find('img').attr('src'); alt = $(this).find('img').attr('img'); $('img', this).remove(); $(this).append('<div class="topLeft"></div><div class="topRight"></div><div class="bottomLeft"></div><div class="bottomRight"></div>'); $(this).children('div').css('background-image','url('+ img + ')'); $(this).find('div.topLeft').css({top:0, left:0, width:pos , height:pos}); $(this).find('div.topRight').css({top:0, left:pos, width:pos , height:pos}); $(this).find('div.bottomLeft').css({bottom:0, left:0, width:pos , height:pos}); $(this).find('div.bottomRight').css({bottom:0, left:pos, width:pos , height:pos}); }).hover(function () { $(this).find('div.topLeft').stop(false, true).animate({top:neg, left:neg}, {duration:speed_out, easing:style_out}); $(this).find('div.topRight').stop(false, true).animate({top:neg, left:out}, {duration:speed_out, easing:style_out}); $(this).find('div.bottomLeft').stop(false, true).animate({bottom:neg, left:neg}, {duration:speed_out, easing:style_out}); $(this).find('div.bottomRight').stop(false, true).animate({bottom:neg, left:out}, {duration:speed_out, easing:style_out}); }, function () { $(this).find('div.topLeft').stop(false, true).animate({top:0, left:0}, {duration:speed_in, easing:style_in}); $(this).find('div.topRight').stop(false, true).animate({top:0, left:pos}, {duration:speed_in, easing:style_in}); $(this).find('div.bottomLeft').stop(false, true).animate({bottom:0, left:0}, {duration:speed_in, easing:style_in}); $(this).find('div.bottomRight').stop(false, true).animate({bottom:0, left:pos}, {duration:speed_in, easing:style_in}); }).click (function () { window.location = $(this).find('a').attr('href'); }); }); 
    SLIDER:
    Codice PHP:
    jQuery.noConflict(); $(window).load(function(){ $('#slider')._TMS({ banners:truewaitBannerAnimation:falsepreset:'diagonalFade'easing:'easeOutQuad'pagination:trueduration:400slideshow:8000bannerShow:function(banner){ banner.css({marginRight:-500}).stop().animate({marginRight:0}, 600) }, bannerHide:function(banner){ banner.stop().animate({marginRight:-500}, 600) } }) }) 
    e dire che questo è già un risultato perchè alla prima implementazione lo slider scomparve definitvamente, ma con un jQuery.noConflict() sono riuscito a farlo riapparire.

    dato che sono prossimo alla pazzia e le scadenze si avvicinano, qualcuno che mastica js meglio di me sa dirmi dov'è l'inghippo??

    Grazie in anticipo!


    P.S.: il sito è all'inizio e il codice è un po incasinato, non rimproveratemi sarà messo a posto
    -Yenn-

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    - Hai degli errori nella pagina prima sistema quelli
    - Se usi solo jquery come libreria il jQuery.noConflict(); non serve
    Dettagli errore pagina Web
    Agente utente: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E; InfoPath.3)
    Timestamp: Fri, 2 Mar 2012 12:32:28 UTC
    Messaggio: Proprietà o metodo non supportati dall'oggetto
    Linea: 102
    Carattere: 2
    Codice: 0
    URI: http://www.yeahlab.it/prova/icp/3/js/atooltip.jquery.js
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di yenn
    Registrato dal
    Mar 2012
    Messaggi
    5
    dunque innanzitutto grazie Andrea per la pronta risposta.

    per errori nella pagina intendi l'index?
    ho eliminato il richiamo a quella libreria che mi hai segnalato nella tua citazione (atooltip) perchè effettivamente non mi serviva più.
    non mi ha risolto il problema.
    allora ho provato a scambiare l'ordine con cui venivano richiamati le librerie nella head, e spostato gli script che prima erano in fondo, sotto alla corrispettiva libreria, ma non ha fatto altro che peggiorare le cose, ora lo slider non c'è proprio più...

    la pagina di riferimento per le modifiche in corso è sempre questa

    ho provato a verificare gli errori tramite le console di firefox e chrome ed anche tramite firebug per chrome, ma mi danno degli errori assurdi, a volte diversi ogni volta che ricarico la pagina... insomma non so se farci molto affidamento.

    qualche idea?
    -Yenn-

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Usa solo la libreria jquery meglio la più recente (1.7...) se dovesse dare problemi usa l'altra, comunque non entrambe togli il noconflict (come già detto non serve) metti tutti i vari script (font, slide, etc...) nella head subito sotto la libreria $(window).load(..) $(document).ready(....) mi sembra ridondante prova a mettere tutto nel ready, se anche cosi non funziona, smonta tutto poi rimonti un pezzo alla volta per capire quando incontri conflitti/errori, auguri.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di yenn
    Registrato dal
    Mar 2012
    Messaggi
    5
    questi auguri mi servono proprio.

    dunque sono arrivato ad un buon punto riuscendo a far funzionare l'animazione logo ma lo slider rimane fisso, risultato ottenuto eliminando il noconflict, portando gli script nella head e ordinandoli secondo una certa logica (libreria principale>libreria secondaria>script relativo>libreria secondaria>script relativo etc)

    per il resto sono stato l'intero pomeriggio a cambiare l'ordine delle librerie nella head sperando di incontrare quello giusto (perchè credo che di quello si tratti).
    ma date le combinazioni possibili tendenti all'infinito, mi fermo e seguo i tuoi step.
    farò sapere com'è andata

    grazie ancora
    -Yenn-

  6. #6
    Utente di HTML.it L'avatar di yenn
    Registrato dal
    Mar 2012
    Messaggi
    5
    SUPERUPDATE INASPETTATO!

    ho eliminato la jquery1.3 e fila tutto liscio come dovrebbe!

    e dire che era una delle prime soluzioni che avevo provato solo che le librerie non erano nell'ordine in cui sono ora (secondo la "logica" di cui sopra), quindi non andava e avevo accantonato questa soluzione...

    che dire, grande Andrea per avermi illuminato!

    non so come ringraziarti, se passi da Napoli hai una birra pagata

    ciao!
    -Yenn-

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 © 2025 vBulletin Solutions, Inc. All rights reserved.