【问题标题】:convert jquery to pure javascript or typescript将 jquery 转换为纯 javascript 或 typescript
【发布时间】:2018-05-26 17:02:59
【问题描述】:

我不想在 Angular 4 中使用 jquery,但我需要将以下 jquery 代码转换为 javascript 或理想情况下的 typescript - 帮助!

var pContainerHeight = $('.bird-box').height();

$(window).scroll(function(){
  var wScroll = $(this).scrollTop();
  if (wScroll <= pContainerHeight) {
    $('.logo').css({
      'transform' : 'translate(0px, '+ wScroll / 2 +'%)'
    });
    $('.back-bird').css({
      'transform' : 'translate(0px, '+ wScroll / 4 +'%)'
    });
    $('.fore-bird').css({
      'transform' : 'translate(0px, -'+ wScroll / 40 +'%)'
    });
  }
});

【问题讨论】:

  • 是什么让您认为 Stackoverflow 是免费的代码转换服务?
  • 您在该代码末尾缺少一组右大括号。
  • 请更具体。您需要帮助编写事件侦听器吗?按班级选择?应用 CSS 样式?如前所述,SO 不是代码转换/编写服务。这是一个寻求帮助解决您尝试编写的代码问题的地方。如果您的问题类似于“我正在尝试将其转换为香草 js。这是我尝试过的,但这是行不通的,我做错了什么?”收到会更好。
  • 我真的认为没有必要投反对票。

标签: javascript jquery typescript


【解决方案1】:

如果每个类只有一个元素,您可以稍微简化代码,但对于一般情况:

const pContainerHeight = document.querySelector('.bird-box').clientHeight;

window.addEventListener('scroll', () => {
  const wScroll = window.scrollY;
  if (wScroll <= pContainerHeight) {
    document.querySelectorAll('.logo').forEach(el =>
      el.style.transform = `translate(0px, ${wScroll/2}%)`);
    document.querySelectorAll('.back-bird').forEach(el =>
      el.style.transform = `translate(0px, ${wScroll/4}%)`);
    document.querySelectorAll('.fore-bird').forEach(el =>
      el.style.transform = `translate(0px, ${-wScroll/40}%)`);
  }
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2012-03-08
  • 2020-07-24
  • 2013-10-22
  • 1970-01-01
  • 2016-07-18
  • 2017-06-28
相关资源
最近更新 更多