Visualizzazione risultati 1 fino 13 di 13

Discussione: Domanda su uno script per avere sfondi random

  1. #1
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito Domanda su uno script per avere sfondi random

    Salve a tutti! Premetto che non so niente di linguaggio JavaScript xD

    Ho trovato su HTML.it uno script per impostare degli sfondi casuali, e ho voluto provarlo, così l'ho messo nel mio blog (creato con Joomla) http://adurnah.altervista.org/

    Il mio problema è che questo script è valido solo per tre sfondi... mi potete dire come modificarlo (o averne un altro) per averne di più?

    Avevo trovato questi due topic http://forum.it.altervista.org/php-m...nd-random.html http://forum.it.altervista.org/javas...nd-random.html
    solo che il codice in php che propongono non riesco a metterlo in Joomla! E l'altro script non sono riuscita a farlo funzionare xD Mi potete aiutare?

    Questo è l'index del blog!

    Codice:
    <?php 
    /**
     * @version		1.0.0
     * @package		JoomlaWeb.com Blogi Template
     * @copyright	Copyright (C) JoomlaWeb.com. All rights reserved.
     * @license		GNU/GPL
     */
     
    defined( '_JEXEC' ) or die( 'Restricted access' );?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
    <head>
    <jdoc:include type="head" />
    <link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css"/>
    <style type="text/css">
    <!--
    body { background:<?php echo $this->params->get('backgroundStyle'); ?>; color:<?php echo $this->params->get('textColor'); ?>; font-family: <?php echo $this->params->get('fontFamily'); ?>;}
    --!>
    </style>
    </head>
    
    <body>
    <div id="container">
    
    
    
    
    <script>
    
    var backgr1="allen.png"
    var backgr2="ed1.png"
    var backgr3="lily1.png"
    
    
    var cur=Math.round(6*Math.random())
    if (cur<=1)
    backgr=backgr1
    else if (cur<=4)
    backgr=backgr2
    else 
    backgr=backgr3
    
    
    
    
    document.write('<body background="'+backgr+'"  bgcolor="#000000">')
    
    </script>
    
    
    
    
    <a name="top"></a>
    
    <div id="left">
        <jdoc:include type="modules" name="left" style="xhtmlxtd" />
      </div>
    
    <div style="position:absolute; top: 41px; left: 217px; width:437px; height:704px;  overflow: auto; z-index:2; border: 0px solid #2172BF; overflow-x: hidden; padding: 1px;  "> 
    
      <div id="maincontent"  <?php if ( $this->countModules('right')) { ?> style="width:400px" <?php } else { ?> style="width:400px" <?php } ?>>
    
        <?php if ( $this->countModules('breadcrumb')) { ?><div id="breadcrumbs"><?php echo JText::_('You are here'); ?> <jdoc:include type="modules" name="breadcrumb" /></div><?php } ?>
        <jdoc:include type="message" />
        <jdoc:include type="component" />
    
     <?php if ( $this->countModules('right')) { ?>
      <div id="sideblog">
        <jdoc:include type="modules" name="right" style="xhtmlxtd" />
      </div>
      <?php } ?>
    </div>
     <jdoc:include type="modules" name="debug" />
    
     </div>
    
    <br>
    <br>
    
    </body>
    </html>

  2. #2
    Guest

    Predefinito

    Puoi utilizzare qualcosa di simile:
    Codice:
    MyBackGrd = new Array("sfondo1.png","sfondo2.png","sfondo3.png", ..... , "sfondoUltimo.png");
    var index = Math.round((MyBackGrd.length - 1) * Math.random);
    CurrentBackGround = MyBackGrd[index];

  3. #3
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito

    Mh, e devo solo sostituire ai vari sfondo1.png, sfondo2.png gli indirizzi dei miei sfondi vero? E mettere quel codice tra due tag <script> e </script> giusto?
    Però non funziona °-° Mi scompare del tutto lo sfondo così!

    Codice:
    <script>
    
    MyBackGrd = new Array("allen.png","lily1.png","ed1.png","firma.png");
    var index = Math.round((MyBackGrd.length - 1) * Math.random);
    CurrentBackGround = MyBackGrd[index];
    
    </script>
    Cosa sbaglio?

  4. #4
    Guest

    Predefinito

    ovvio. Non fai altro che impostare la variabile in questo modo.
    Devi comunque scrivere nel documento:
    document.write('<body background="'+CurrentBackGround+'" bgcolor="#000000">')

  5. #5
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito

    Continua a non funzionare .__. Ho solo aggiunto quella riga che mi hai detto tu, e lo script l'ho messo esattamente dove avevo messo l'altro... ma non funziona...
    Scusami se ti rompo
    Tanto ho fatto così

    Codice:
    <?php 
    /**
     * @version		1.0.0
     * @package		JoomlaWeb.com Blogi Template
     * @copyright	Copyright (C) JoomlaWeb.com. All rights reserved.
     * @license		GNU/GPL
     */
     
    defined( '_JEXEC' ) or die( 'Restricted access' );?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
    <head>
    <jdoc:include type="head" />
    <link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css"/>
    <style type="text/css">
    <!--
    body { background:<?php echo $this->params->get('backgroundStyle'); ?>; color:<?php echo $this->params->get('textColor'); ?>; font-family: <?php echo $this->params->get('fontFamily'); ?>;}
    --!>
    </style>
    </head>
    <body>
    <div id="container">
    
    
    <script>
    
    MyBackGrd = new Array("allen.png","lily1.png","ed1.png","firma.png");
    var index = Math.round((MyBackGrd.length - 1) * Math.random);
    CurrentBackGround = MyBackGrd[index];
    
    document.write('<body background="'+CurrentBackGround+'"  bgcolor="#000000">')
    
    </script>
    
    
    <a name="top"></a>
      
    <div id="left">
        <jdoc:include type="modules" name="left" style="xhtmlxtd" />
      </div>
    <div style="position:absolute; top: 41px; left: 217px; width:437px; height:704px;  overflow: auto; z-index:2; border: 0px solid #2172BF; overflow-x: hidden; padding: 1px;  "> 
      <div id="maincontent"  <?php if ( $this->countModules('right')) { ?> style="width:400px" <?php } else { ?> style="width:400px" <?php } ?>>
        <?php if ( $this->countModules('breadcrumb')) { ?><div id="breadcrumbs"><?php echo JText::_('You are here'); ?> <jdoc:include type="modules" name="breadcrumb" /></div><?php } ?>
        <jdoc:include type="message" />
        <jdoc:include type="component" />
     <?php if ( $this->countModules('right')) { ?>
      <div id="sideblog">
        <jdoc:include type="modules" name="right" style="xhtmlxtd" />
      </div>
      <?php } ?>
    </div>
     <jdoc:include type="modules" name="debug" />
     </div>
    <br>
    <br>
    </body>
    </html>

    E vedo solo lo sfondo nero...

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Modifica questo:
    Codice PHP:
    <style type="text/css">
    <!--
    body { background:<?php echo $this->params->get('backgroundStyle'); ?>; color:<?php echo $this->params->get('textColor'); ?>; font-family: <?php echo $this->params->get('fontFamily'); ?>;}
    --!>
    </style>
    Così
    Codice PHP:
    <style type="text/css">
    <!--
    body { background:<?php $b = array('URL1', 'URL2'); echo "url(".$b[array_rand($b)].")"/*$this->params->get('backgroundStyle');*/ ?>; color:<?php echo $this->params->get('textColor'); ?>; font-family: <?php echo $this->params->get('fontFamily'); ?>;}
    --!>
    </style>
    E togli quello script inutile.

  7. #7
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito

    Grazie mille, funziona! *-*
    Ho solo un ultimo problema... Lo sfondo si ripete, io vorrei invece che comparisse solo una volta!
    Anche lo script che avevo usato prima all'inizio faceva ripetere lo sfondo, ma era bastato aggiungere 'background-repeat:no-repeat;' al CSS del template di Joomla che ho usato, così

    Codice:
    body {
    background-repeat:no-repeat;
    	margin:0px;
    	line-height:100%;
    }
    Ma nel momento in cui uso il metodo che mi hai detto tu non funziona più, gli sfondi si ripetono °-°

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Tra ?> e ; color: scrivi no-repeat, dovrebbe funzionare. Attualmente non funziona perché quella proprietà viene sovrascritta dalla proprietà background. Puoi in alternativa cambiare (nella riga di PHP che ti ho modificato) background in background-image, così da evitare ulteriori problemi.
    Ultima modifica di karl94 : 21-12-2010 alle ore 21.51.52

  9. #9
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito

    Grazie mille! Funziona bene sia aggiungendo il 'no-repeat' che mettendo 'background-image', ma in entrambi i casi poi lo sfondo non era nero come volevo io ma bianco... per non chiederti ancora aiuto ho modificato semplicemente il tag body aggiungendo bgcolor xD Grazie mille ancora! *__*

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Se vuoi lo sfondo nero scrivi black (oppure #000) tra ?> e ;color: .
    Usare l'attributo bgcolor del body non ha senso da quando si usano i CSS (una decina d'anni), per questo è deprecato e non dovrebbe venire più usato.

  11. #11
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito

    Sìsì lo so ma per quanto riguarda il web sono completamente autodidatta, le mie conoscenze sono abbastanza scarse, quindi non essendo sicura su come fare, senza fare troppe madonne ho messo così, tanto funziona xD Comunque ora modifico come mi hai detto tu *_*
    EDIT: mh, non mi funziona se metto black o #000... ho messo background-color: #000; nel CSS!
    Ultima modifica di adurnah : 21-12-2010 alle ore 23.08.59

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Hai provato ad eliminare la cache?

  13. #13
    adurnah non è connesso Neofita
    Data registrazione
    02-03-2009
    Messaggi
    7

    Predefinito

    No perchè ho risolto subito cambiando il CSS, non son stata a smadonnarci ^^

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •