2009/07/23

[PHP] mootoolsを使った slideshowで、ディレクトリ内のjpgを指定

randjpg関数を改変

function slideshowdata($tagdir = 'top')
{
  if ($dh = opendir($tagdir)) {
    for ($i = 0; $file = readdir($dh); ) {
      if (preg_match ('/.jpg$/', $file)) {
        $images[$i++] = $file;
      }
    }

    srand ((float)microtime() * 1000000);
    shuffle ($images);
    $cnt = $i;

    for ($i = 0; $i < $cnt; $i++) {
      if ($i) print ", ";
      print "\"{$images[$i]}\"";
    }

    closedir($dh);
  } else {
    print "directory open error\n";
  }
}

html内
<link rel="stylesheet" type="text/css" href="/css/slideshow.css" media="screen" />
<script type="text/javascript" src="/bin/js/mootools.js"></script>
<script type="text/javascript" src="/bin/js/slideshow.js"></script>
<script type="text/javascript" src="/bin/js/slideshow.kenburns.js"></script>
<script type="text/javascript">
//<![CDATA[
window.addEvent('domready', function(){
  // Load your images here
  var data = [
    <?php slideshowdata('img/top'); ?>
  ];

  var options = {
    random: true,
    delay: 10000, 
    duration: 4000, 
    width: 480,
    height: 120,
    hu: 'img/top/'
  }

  // Initialize the Slideshow instance
  var myShow = new Slideshow.KenBurns('show', data, options);
});
//]]>
</script>
optionsとかは適当に

0 件のコメント:

色々な画像ファイル形式をhtmlに埋め込む(PHP)

画像をhtmlに埋め込む際、単一の場合は img/src、複数の拡張子を指定すると img/source/srcsetに展開してくれる便利関数。また、単一拡張子のみが指定されている場合は、ブラウザのサポート状況に応じ、avifやwebpの拡張子を持つ同名のファイルがある場合は[a...