Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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_Timer_Webcam_Animated Gif - Fatal编程技术网

在使用JavaScript捕获照片之前延迟或显示动画照片计时器

在使用JavaScript捕获照片之前延迟或显示动画照片计时器,javascript,timer,webcam,animated-gif,Javascript,Timer,Webcam,Animated Gif,我创建了各种JavaScript函数来从浏览器中捕获照片。使用JavaScript函数,我可以成功地启动相机,拍摄照片并预览,然后上传照片 我正在考虑集成照片定时器功能。在这里,一旦我点击拍照按钮,它将等待3秒(例如),并将显示一个动画计时器(我想加载一个动画gif文件),它将倒计时3到1。一旦倒计时结束,我想调用拍照功能 但我无法将此逻辑集成到我的照片捕获功能中 我的示例代码是: var cameraEnabled = false; var timer = null; $('#takeBut

我创建了各种JavaScript函数来从浏览器中捕获照片。使用JavaScript函数,我可以成功地启动相机,拍摄照片并预览,然后上传照片

我正在考虑集成照片定时器功能。在这里,一旦我点击拍照按钮,它将等待3秒(例如),并将显示一个动画计时器(我想加载一个动画gif文件),它将倒计时3到1。一旦倒计时结束,我想调用拍照功能

但我无法将此逻辑集成到我的照片捕获功能中

我的示例代码是:

var cameraEnabled = false;
var timer = null;

$('#takeButton').click(function(){

    if(timer != null)
    {
      clearTimeout(timer); 
      timer = null;
    }
    else
    {
        if(!cameraEnabled){
            return false;
        }
        timer = window.setTimeout(webcam.show_image(), 3000);
        webcam.freeze();
        togglePane();
        return false;
    }

});
 show_image:function()
 {
    var img = document.createElement("img");
    img.src = "countdowntimer.gif";
    document.body.appendChild(img);
 },
我的显示图像功能是:

var cameraEnabled = false;
var timer = null;

$('#takeButton').click(function(){

    if(timer != null)
    {
      clearTimeout(timer); 
      timer = null;
    }
    else
    {
        if(!cameraEnabled){
            return false;
        }
        timer = window.setTimeout(webcam.show_image(), 3000);
        webcam.freeze();
        togglePane();
        return false;
    }

});
 show_image:function()
 {
    var img = document.createElement("img");
    img.src = "countdowntimer.gif";
    document.body.appendChild(img);
 },
谁能在这个问题上帮助我

提前感谢您的回复

timer = window.setTimeout(webcam.show_image(), 30000);
当您执行此操作时,实际上是调用webcam.show_image,然后将函数结果传递给setTimeout。要将指针传递给函数,应该执行以下操作

timer = window.setTimeout(webcam.show_image, 30000);
此外,我认为使用动画gif进行文本倒计时不是一个好主意,您可以在一些DIV中操作innerHTML。
最后,30000毫秒是30秒,不是3秒。

这可能不是您的问题,但是
setTimeout
将毫秒作为第二个参数。因此,目前它正在等待30秒呼叫
网络摄像头。显示图像
。另外
webcam.show_image()
不应该有括号,我相信它正在立即调用它。嗨,Tommi..谢谢我喜欢代码..但是你能告诉我如何在不使用警报的情况下集成快照功能吗??我的拍摄功能是webcam.freeze();拍摄后,我切换窗格并返回false..例如:togglePane();返回false;然后只需删除警报并粘贴webcam.freeze();切换窗格();这对我来说是一个很好的帮助谢谢Tommi。。计时器逻辑正在出现。。但我仍然有不同的问题,我将要解决。如果我无法修复,我将再次发布其余代码。Tommi..虽然我不确定,但您的代码逻辑中有一个错误!显示警报并关闭警报消息后,当我再次单击按钮时,警报开始计数(-)。如何修复它?我想我必须编写一个函数来重新加载UI?当然,这是一个概念证明,我认为您将研究代码并自己实现它。无论如何,当用户单击按钮时,应该重新初始化计数器变量(timeto=3)。比如说像这样,