【问题标题】:javascript variable in foreach loopforeach循环中的javascript变量
【发布时间】:2017-03-31 13:39:03
【问题描述】:

我尝试为我的部分设置视差效果,视差的速度在 html 中给出,data-Lon1 像这样

我取回 data-Lon1 并在我的视差函数中使用它以获得不同的部分速度

(function(){

  var parallax = document.querySelectorAll(".parallax"),


  window.onscroll = function(){
    [].slice.call(parallax).forEach(function(el,i){
     speed = parseFloat($(el).attr('data-lon1'));
      var windowYOffset = window.pageYOffset,
          elBackgrounPos = "0 " + (windowYOffset * speed) + "px";

      el.style.backgroundPosition = elBackgrounPos;

    });
  };

})();

这些部分没有获得速度值,但如果我默认给出速度值,它就可以工作。如何获得每个 data-Lon1 部分的值并具有三种不同的速度?

【问题讨论】:

  • 您忘记了描述问题并提出问题的部分......
  • 你用的是什么随机视差库?
  • 仅供参考,[].slice.call(parallax).forEach(function(el,i){ 可以重写为[].forEach.call(parallax, function(el,i){。你不需要.slice()

标签: javascript foreach


【解决方案1】:

总是会返回相同的值:

parseFloat($('.parallax').attr('data-lon1'))

因为您选择 all 匹配 .parallax 元素并尝试从所有元素中获取 one 值,这很可能总是默认为第一个集合。

您可能希望获取循环迭代中使用的特定元素的值:

parseFloat($(el).attr('data-lon1'))

【讨论】:

  • @soniamaklouf:定义“不起作用”。它做什么?它是如何具体失败的?当您调试它时,问题究竟发生在哪里?具体一点,这里没有人可以看到您的屏幕。
  • 它给了我 ReferenceError: $ is not defined
  • @soniamaklouf:之前它会出现完全相同的错误。您正在尝试在不加载 jQuery 库的情况下使用 jQuery。
猜你喜欢
  • 2016-01-14
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多