我一直在为我的合作伙伴写一个网站,我正在尝试使用jquery创建一个图像轮播来更改背景样式属性但是到目前为止它还没有工作我得到的是我在我的CSS中设置的股票图像占位符,请快速查看我看错的地方
我有一些PHP运行来计算专门用于此目的的文件夹中的照片数量
<?php
$dir="images/ticker-images"
$file_count = count(glob("{$dir}/*.*"))
?>
那么jquery就是这个
$(document).ready(function(){
var x;
var y = <?php echo $file_count>;
var dir = <? php echo $dir>;
while true do {
x = math.floor(math.random()*y);
$("image-ticker").css({'background': 'url("' + dir + '/' + x + '.jpg"'});
sleep(5);
};
};
如果我犯了一个新手的错误,那么,请提前谢谢。
答案 0 :(得分:3)
Sleep是一个PHP方法,而不是JS方法。
您的do loop结构不正确。 while
条件应该在do块之后,而不是之前,如
do {
// code
} while (condition);
但我认为无论如何你最好还是setInterval。
您的dir
变量可能是一个字符串,因此您需要用引号将其分隔。
dir
的php块应该从<?php
而不是<? php
您的js代码中的dir
和file_count
个php块缺少结束标记。
您在document.ready
您的PHP代码不会以semicolons
javascript Math
对象已大写。
您的image-ticker
选择器可能是id selector,需要以哈希为前缀(#
)
试试这个:
<?php
$dir="images/ticker-images";
$file_count = count(glob("{$dir}/*.*"));
?>
那么jquery就是这个
$(document).ready(function(){
var x;
var y = <?php echo $file_count ?>;
var dir = "<?php echo $dir; ?>";
var int=setInterval(function () {
x = Math.floor(Math.random()*y);
$("#image-ticker").css({'background': 'url("' + dir + '/' + x + '.jpg"'});
},5000);
});
答案 1 :(得分:0)
您的php缺少jquery部分中的结束标记。它需要?>
标记才能关闭。你的while循环需要在括号中有条件 - &gt; while( run )
。
注意我使用了run
,在使用循环时需要一个条件,可以使其成为假。否则,您将遇到无限循环,导致浏览器或计算机崩溃
的修改
此外,javascript使用do {} while();
格式,你的循环在大括号中,你的条件在括号中。