javascript - 使 .css 基于毫秒重复几次 - DRY

标签 javascript jquery

我正在努力学习改进我的代码而不是重复自己。我正在尝试使用 .css() 使美学设计元素在消失之前“闪烁”。我的结果有效,但我确信有更好/更短的方法来编写它。

目前,我设置了四个间隔来处理 CSS 的更改。

setTimeout( function(){
   $(outputID).css('border-right','2px solid #fff');
},500);
setTimeout( function(){
   $(outputID).css('border-right','2px solid #343434');
},1000);
setTimeout( function(){
   $(outputID).css('border-right','2px solid #fff');
},1500);
setTimeout( function(){
   $(outputID).css('border-right','2px solid #343434');
},2000);

使用 DRY 原则,最好的方法是什么?循环500毫秒间隔,然后基于2000毫秒取消?以某种方式使用.delay()

最佳答案

您可以使用数据驱动的方法

var objA = [{
    duration: 500,
    style: '2px solid #fff'
}, {
    duration: 1000,
    style: '2px solid #343434'
}, {
    duration: 1500,
    style: '2px solid #fff'
}, {
    duration: 2000,
    style: '2px solid #343434'
}];

for (var i = 0; i < objA.length; i++) {
    (function(i) {
        setTimeout(function() {
            $(outputID).css('border-right', objA[i].style);
        }, objA[i].duration);
    })(i);
}

确保使用 IIFE 在循环中创建一个闭包保留 i 变量

关于javascript - 使 .css 基于毫秒重复几次 - DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728086/

相关文章:

javascript - 从 Node/Express/Angular/PhantomJS 导出带有图表的 PDF 报告

javascript - 如何排序数字?

javascript - 有人知道对页面中包含的所有脚本进行关键字搜索的工具吗?

javascript - 从网页获取已安装的软件

jquery 小程序上的右键单击上下文菜单

javascript - 如果关键字在另一个列表中使用 Ramda 匹配,则过滤字符串列表

javascript - 如何将小数四舍五入到两位?

javascript - 加速我的 Javascript 滚动事件代码

javascript - jquery中是否有相邻选择器之类的东西?

javascript - JQuery - 从 Selectbox 中删除所有选项,除了 first 和 selected