首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重构jQuery inview事件侦听器

重构jQuery inview事件侦听器
EN

Stack Overflow用户
提问于 2020-02-17 17:16:05
回答 2查看 140关注 0票数 3

我想将以下代码转换为纯JavaScript。

代码语言:javascript
复制
$(function () {
    $('h2,.single').on('inview', function () {
        $(this).addClass('is-show');
    });
});

我试了很多时间,但还是想不出怎么做。有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-17 19:26:49

Inview是一个旧的插件,用来解决现在有web API的问题,只要你不需要支持IE,你可以使用intersection observer来做这件事。

如果没有任何例子或进一步解释你需要的东西如何工作,就很难猜测你想要实现什么。但这里有一个基本的实现,它将模仿您提供的极小的JQuery。

代码语言:javascript
复制
const sections = [].slice.call(document.querySelectorAll(".single"));

function createObserver(el) {
  let observer;

  const options = {
    root: null,
    rootMargin: "0px",
    threshold: 0.5
  };

  observer = new IntersectionObserver(handleIntersect, options);
  observer.observe(el);
}

function handleIntersect(entries, observer) {
  entries.forEach((entry) => {
    let box = entry.target;
    let visible = entry.intersectionRatio;
    if(visible > 0.5) {
      box.classList.add('is-show');
    } else {
      box.classList.remove('is-show');
    }
  });
}



const setup = (sections) => {
  for (let i in sections) {
    const el = sections[i];
    createObserver(el);
  }
}


setup(sections);
代码语言:javascript
复制
.single {
  padding: 2rem;
  background: tomato;
  color: #fff;
  margin: 600px 0;
  transition: all .5s ease-out;
  opacity: 0;
}
.is-show {
  opacity: 1
}
代码语言:javascript
复制
<h2 class="single">I'm an H2 Element in frame</h2>
<h2 class="single">I'm an H2 Element in frame</h2>
<h2 class="single">I'm an H2 Element in frame</h2>
<h2 class="single">I'm an H2 Element in frame</h2>

票数 2
EN

Stack Overflow用户

发布于 2020-02-17 18:07:59

除了事件之外,您可以使用以下命令:

代码语言:javascript
复制
(function() {
     document.querySelector("h2, .single").addEventListener("click", function(){
         this.classList.add("is-show");
  });
})();

我没有找到inview的等价物。你可以参考this

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60259146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档