javascript - 根据数组中的值动态更改 CSS

标签 javascript jquery html arrays css

我有这部分 html:

<h1 class="gr-title uppercase">
<span class="title-red">GET MORE</span> 
<span id="wordSwap" class="title-black">PROFITS</span>
</h1>

...以及更改 ID 为 wordSwap 的跨度值的 jquery 代码:

(function(){

    //Words:
    var words = [
    'Profits',
        'Freedom',
        'Time',
        'Enjoyment',
        'Disconnection',
        'Value'
        ], i = 0;

    setInterval(function(){
        $('#wordSwap').fadeOut(function(){
            $(this).html(words[i=(i+1)%words.length]).fadeIn();
        });
       // 2 second interval
    }, 2000);

})();

我正在尝试根据下一个值/单词更改数组中每个值的 letter-spacing,但我卡住了,无法让它工作。例如,我希望“Time”这个词的字母间距 = 30px,“Value”这个词的 20px,等等。我怎样才能完成这项工作?

这是我到目前为止的一个 jsfiddle:https://jsfiddle.net/vgum6jn6/

//Swap words effect
(function() {

  // List of words:
  var words = [
    'Profits',
    'Freedom',
    'Time',
    'Enjoyment',
    'Disconnection',
    'Value'
  ], i = 0;

  setInterval(function() {
    $('#wordSwap').fadeOut(function() {
      $(this).html(words[i = (i + 1) % words.length]).fadeIn();
    });
    // 2 seconds
  }, 2000);

})();
.gr-title {
  font-family: "Arial", Georgia, Serif;
}

.uppercase {
  text-transform: uppercase;  
}

.title-red {
  color: #CB0000;
}

.title-black {
  color: #191919;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<h1 class="gr-title uppercase">
  <span class="title-red">GET MORE</span> <span id="wordSwap" class="title-black">PROFITS</span>
</h1>

最佳答案

尝试这样的事情:

var baseWidth = 100; //some value
setInterval(function(){
    $('#wordSwap').fadeOut(function(){
        $(this).html(words[i=(i+1)%words.length]).fadeIn()
          .css('letter-spacing','') //reset spacing
          .css('letter-spacing', function(){
                var ratio = baseWidth / $(this).prop('offsetWidth');
                return ratio + 'px';
               });
    });
   // 2 second interval
}, 2000);

关于javascript - 根据数组中的值动态更改 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166112/

相关文章:

javascript - Breeze中使用 'take'方法查询时可能出现的bug

javascript - 显示下一个隐藏的 div 和隐藏当前显示的 div

javascript - 出现时 JQuery "Chosen"下拉菜单被 chop

javascript - 通过 url Bootstrap 调用 navtab

javascript - 页面顶部的 jQuery 粘性 div

javascript - 为什么输入框不在背景图片之上?

javascript - 如何使用 ga() 函数创建综合浏览量?

javascript - 单击后可以加载窗口吗?

css - 位置 :fixed on menu bar - hopefully simple

javascript - 检索 ajax 函数内的每个 Php 循环变量