Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript淡入/淡出无法正常工作_Javascript_Html_Css_Fade - Fatal编程技术网

Javascript淡入/淡出无法正常工作

Javascript淡入/淡出无法正常工作,javascript,html,css,fade,Javascript,Html,Css,Fade,我正在开发一个小的javascript库,它可以显示许多不同的图像,并淡入淡出。不幸的是,我似乎无法让淡入正常工作 有人能告诉我怎么解决这个问题吗? 这是我目前的代码: //This goes in the head of the html file: <script type="text/javascript"> var imageCount = 4; var image = new Array(imageCount); image [1] = "slideshow/testimg

我正在开发一个小的javascript库,它可以显示许多不同的图像,并淡入淡出。不幸的是,我似乎无法让淡入正常工作

有人能告诉我怎么解决这个问题吗? 这是我目前的代码:

//This goes in the head of the html file:
<script type="text/javascript">
var imageCount = 4;
var image = new Array(imageCount);
image [1] = "slideshow/testimg1.jpg"
image [2] = "slideshow/testimg2.jpg"
image [3] = "slideshow/testimg1.jpg"
image [4] = "slideshow/testimg2.jpg"
</script>

//This goes in the body of the html file
<img width="760" height="260" name="slide">
<script type="text/javascript">
var step = 1;
document.images.slide.style.opacity = 1;
function NextImage()
{
    //Change image
    document.images.slide.src = image [step];
    //Change step
    if (step < imageCount)
        step++;
    else
        step = 1;
    FadeIn();
}
function FadeIn()
{
    if (document.images.slide.style.opacity < 1)
    {
        //Increase opacity
        document.images.slide.style.opacity += 0.05;
        setTimeout("FadeIn()", 20);
    }
    else
    {
        //Set opacity to 1, fade out
        document.images.slide.style.opacity = 1;
        setTimeout("FadeOut()", 4000);
    }
}
function FadeOut()
{
    if (document.images.slide.style.opacity > 0.05)
    {
        //Reduce opacity
        document.images.slide.style.opacity -= 0.05;
        setTimeout("FadeOut()", 20);
    }
    else
    {
        //Set opacity to 0.5, change the image
        document.images.slide.style.opacity = 0.05;
        NextImage();
    }
}
NextImage();
</script>
谢谢

变化:

setTimeout("FadeIn()", 20);

看看这是否有帮助(以及其他setTimeout函数)

编辑/添加: document.images.slide.style.opacity+=0.05;实际上并不是递增的。尝试以下修改:

//Increase opacity
var x = parseFloat(document.images.slide.style.opacity);
x += 0.05;
document.images.slide.style.opacity = x;
setTimeout(FadeIn, 20);

这是一把小提琴

实际上,wat is oching是事件堆栈,其中set time out函数保存在特定间隔溢出后要执行的事件:)

试试看{
var-imageCount=4;
var image=新数组(imageCount);
图像[1]=”http://i.dailymail.co.uk/i/pix/2009/06/01/article-0-05144F3C000005DC-317_468x387.jpg";
图像[2]=”http://images.theage.com.au/ftage/ffximage/kaka_narrowweb__300x323,2.jpg”;
图像[3]=”http://ricardokakaonline.com/wp-content/uploads/2011/10/istoe.com_.br-kaka.jpg";
图像[4]=”http://farm2.static.flickr.com/1226/1366784050_d697d3cde3.jpg";
var阶跃=1;
document.images.slide.style.opacity=1;
函数NextImage()
{
//改变形象
document.images.slide.src=图像[步骤];
//改变步骤
如果(步骤<图像计数)
step++;
其他的
步骤=1;
FadeIn();
}
函数FadeIn()
{
if(document.images.slide.style.opacity<1)
{
//增加不透明度
document.images.slide.style.opacity+=0.05;
setTimeout(FadeIn(),200);
}
其他的
{
//将“不透明度”设置为1,淡出
document.images.slide.style.opacity=1;
setTimeout(淡出(),2000);
}
}
函数衰减()
{
如果(document.images.slide.style.opacity>0.05)
{
//减少不透明度
document.images.slide.style.opacity-=0.05;
setTimeout(淡出(),200);
}
其他的
{
//将“不透明度”设置为0.5,更改图像
document.images.slide.style.opacity=0.05;
下一代();
}
}
下一代();
}捕获(e){
警报(e)
}
尝试使用jquery进行淡入淡出。。我刚刚添加了一个try-catch块,看看为什么会结冰


这里有一个使用javascript的淡入淡出链接,请提供您的HTML,也许还有一个关于JSFIDLE或其他东西的实例。基本思想是复制和粘贴代码,不理解它/搞错它,开始问问题。。。对吗?由于调用堆栈,代码实际上是冻结的,或者事件需要同时清除,或者使用jquery。由于调用堆栈,代码实际上是冻结的,或者事件需要同时清除,或者使用jquerysetTimeout可以认为是一次性运行并忘记()。也许您正在考虑setInterval(),我知道,但是要存储在偶数que中的事件的相对数量超过了,我们得到了一个异常。这是y代码冻结:)我知道我的小提琴链接不起作用,我只是想用警告框显示原因。就是这样,我在链接中提出了一个jquery示例。它只是没有给出一个答案,它不仅仅是原因需要知道,因为它是冻结,以防止类似的用途在未来。我知道它不起作用。我只是想让所有人都清楚这一点,提醒大家发生了什么,为什么会冻结。您可以编辑它并尝试使用按钮单击。不用担心,如果他写的是字符串而不是方法,代码仍然会冻结。:)密码错误消息是由于setTimeout(FadeIn(),200)引起的;其中应设置超时(FadeIn,200);谢谢你的更正。:)。但是你知道为什么会发生冰冻吗?
setTimeout(FadeIn, 20);
//Increase opacity
var x = parseFloat(document.images.slide.style.opacity);
x += 0.05;
document.images.slide.style.opacity = x;
setTimeout(FadeIn, 20);
try{


   var imageCount = 4;
var image = new Array(imageCount);
image [1] = "http://i.dailymail.co.uk/i/pix/2009/06/01/article-0-05144F3C000005DC-317_468x387.jpg";
image [2] = "http://images.theage.com.au/ftage/ffximage/kaka_narrowweb__300x323,2.jpg";
image [3] = "http://ricardokakaonline.com/wp-content/uploads/2011/10/istoe.com_.br-kaka.jpg";
image [4] = "http://farm2.static.flickr.com/1226/1366784050_d697d3cde3.jpg";
var step = 1;
document.images.slide.style.opacity = 1;
function NextImage()
{
    //Change image
    document.images.slide.src = image [step];
    //Change step
    if (step < imageCount)
        step++;
    else
        step = 1;
    FadeIn();
}
function FadeIn()
{
    if (document.images.slide.style.opacity < 1)
    {
        //Increase opacity
        document.images.slide.style.opacity += 0.05;

        setTimeout(FadeIn(), 200);
    }
    else
    {
        //Set opacity to 1, fade out

        document.images.slide.style.opacity = 1;
        setTimeout(FadeOut(), 2000);
    }
}
function FadeOut()
{
    if (document.images.slide.style.opacity > 0.05)
    {
        //Reduce opacity
        document.images.slide.style.opacity -= 0.05;
        setTimeout(FadeOut(), 200);
    }
    else
    {

        //Set opacity to 0.5, change the image
        document.images.slide.style.opacity = 0.05;
        NextImage();
    }
}
NextImage();
}catch(e){
alert(e)
}