javascript - 如何用 jQuery 做汽车转向灯(信号灯)?

标签 javascript jquery html css jquery-effects

我有一些奇怪的任务要做。我必须在我的网页中实现汽车转向灯功能。我有两个按钮(左和右)和两个绿色箭头(左和右)。应该是这样的:我单击左键(左箭头现在隐藏),左箭头应该闪烁。当我再次点击时,它应该停止动画并被隐藏。我只是不知道如何处理按钮状态并正确使用它。谢谢。

$("#arrow-left").click(function blinker() { 
    if(something) {
       $('#arrow-left-blink').css("visibility", "visible");
        $('#arrow-left-blink').fadeOut(500);
        $('#arrow-left-blink').fadeIn(500);
        setInterval(blinker, 1000);
    } else {
     //hide
    }
}

最佳答案

您应该创建一个闭包来保存不同点击的状态。通过将点击处理程序放入自调用函数中并在其中声明+初始化您的共享变量来简单地创建一个闭包。在点击处理程序结束时增加计数。您可以使用模数运算符“%”在 true 和 false 之间切换。 0%2==0, 1%2==1, 2%2==0, 3%2== 1, 4%2==0, ...

(function(){
    var counter = 0;
    $("#arrow-left").click(function blinker() { 
       if(counter%2) {// modulus operator will toggle between 0 and 1 which corresponds to truthy or falsy
         $('#arrow-left-blink').css("visibility", "visible");
         $('#arrow-left-blink').fadeOut(500);
         $('#arrow-left-blink').fadeIn(500);
         setInterval(blinker, 1000);
      } else {
      //hide
      }
      counter++;
   });
})();

关于javascript - 如何用 jQuery 做汽车转向灯(信号灯)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670109/

相关文章:

javascript - jQuery 将函数参数或变量添加到 id 选择器中

javascript - jQuery show div to all browsers opened on click

css - 如何使用 960 在 css 中扩展列高

javascript - html5 canvas根据选择输入以指定颜色绘制边框

javascript - 导航栏中的可点击下拉菜单不起作用

javascript - 将 .png img 添加到 index.ejs 中动态创建的表中的 td 元素

javascript - 我如何使用shieldui处理国际化

javascript - 获取相同级别的值元素?

javascript - 用于选中复选框标签的 Jquery 选择器

javascript - Phonegap/Cordova getDirectory 在 BlackBerry 上失败