如何在HTML中制作幻灯片横幅?

时间:2015-03-30 02:16:00

标签: javascript php jquery html slideshow

我希望像幻灯片一样自动更改横幅广告。我从一个文件夹中取出的横幅,它可以读取该文件夹中的所有横幅并在网站上自动更改显示。我已经让它读取所有横幅并在网站上显示它,但它是一种随机图像,除非我重新加载页面,否则不会更改。这段代码:

<?php 
     $imglist=''; 
     //$img_folder is the variable that holds the path to the banner images. 
     // see that you dont forget about the "/" at the end 
     $img_folder = "images/"; 
     mt_srand( (double)microtime()*1000 ); 
     //use the directory class 
     $imgs = dir($img_folder); 
     //read all files from the directory, checks if are images and ads them to a list (see below how to display flash banners) 
     while ( $file = $imgs->read() ) 
     { 
         if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))
          $imglist .= "$file "; 
     } 
     closedir($imgs->handle); 
     //put all images into an array 
     $imglist = explode(" ", $imglist); $no = sizeof($imglist)-2; 
    //generate a random number between 0 and the number of images 
     $random = mt_rand(0, $no); $image = $imglist[$random]; 
    //display image 
    echo '<img class="img-responsive" src="'.$img_folder.$image.'" border=0>'; 
?>

如何将PHP变成HTML?如果我将扩展名更改为html,则横幅div显示代码而不是图像。感谢。

2 个答案:

答案 0 :(得分:0)

你正在做的事情的伪代码会像:

将图像从目录加载到数组中 在页面加载中从图像数组中选择一个随机图像 显示第一张图片 每隔X秒显示图像阵列中的另一个图像

要正确显示,您的php文件需要从Web服务器加载/提供。为此,请将您的php文件部署到Web服务器,然后测试它。

我创建了几年agao的横幅示例,与您所追求的相似,is here

答案 1 :(得分:0)

首先,让PHP回显一个隐藏的<input>元素,其值包含图像路径的JSON字符串。使用您的代码,例如:

<?php

    $out = " /*  Beginning of your page code */  "

    $imgJSON = json_encode($imglist);
    $out .= '<input id="bans" type="hidden" value="' .$imgJSON. '" />';

    $out .= " /*  Rest of your page code */  "

    echo $out;
    die();

然后,您可以使用下面的示例交换横幅div中的图像。我演示了一个非常简单的动画,只是为了展示它是如何完成的。

jsFiddle Demo

<强> HTML:

<!--  Not req if you echoed out a hidden input via PHP: 
<input type="hidden" id="bans" value='["300/49","300/51","297/50","298/51"]' />
-->
<div id="banner"></div>

<强>的javascript / jQuery的:

var i = $('#bans').val();

var j = JSON.parse(i);
var max = j.length - 1;
var cnt = 0;

var timerId = null;
function swapBannersTimer() {
    doSwap();
    timerId = setTimeout(swapBannersTimer, 3000);
}
function doSwap(){
    var str = 'http://placekitten.com/' + j[cnt];
    $('#banner')
        .html('<img class="far_right" src="'+str+'" />')
        .promise()
        .done(function(){
            $('img').animate({
                marginLeft: '0px'
            },500);
        });
    cnt = (cnt < max) ? cnt+1 : 0;
}
swapBannersTimer();

** CSS:*

#banner{width:300px;height:52px;overflow:hidden;}
.far_right{margin-left:300px;}

注意:因为此示例使用jQuery库,所以必须将其包含在页面上 - 通常在DIV标记之间,如下所示:

<head>
    <!-- other stuff in head -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>

如果您使用CDN加载jQuery,如上例所示,它可能已经从其他网站预先加载。


如果您想在jQuery上学习一些快速课程,请在此处找到免费视频:

https://www.thenewboston.com/videos.php?cat=32

https://phpacademy.org/videos/jquery-basics