简体   繁体   English

将 jquery 转换为纯 JavaScript 或打字稿

[英]convert jquery to pure javascript or typescript

I don't want to use jquery in angular 4 but have the following jquery code I need to convert to either javascript or ideally typescript - help!我不想在 angular 4 中使用 jquery,但有以下 jquery 代码我需要转换为 javascript 或理想情况下的打字稿 - 帮助!

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 +'%)'
    });
  }
});

You can simplify the code slightly if there's only one element of each class, but for the general case:如果每个类只有一个元素,您可以稍微简化代码,但对于一般情况:

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}%)`);
  }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM