小编Mug*_*g84的帖子

在 React js 中检测滚动方向

我试图检测滚动事件是向上还是向下,但我找不到解决方案。

import React, { useState, useEffect } from "react";
import { Link } from "react-router-dom";

const Navbar = ({ className }) => {
  const [y, setY] = useState(0);

  const handleNavigation = (e) => {
    const window = e.currentTarget;
    if (y > window.scrollY) {
      console.log("scrolling up");
    } else if (y < window.scrollY) {
      console.log("scrolling down");
    }
    setY(window.scrollY);
  };

  useEffect(() => {
    setY(window.scrollY);

    window.addEventListener("scroll", (e) => handleNavigation(e));
  }, []);

  return (
    <nav className={className}>
      <p>
        <i className="fas fa-pizza-slice"></i>Food finder
      </p>
      <ul>
        <li>
          <Link …
Run Code Online (Sandbox Code Playgroud)

javascript scroll event-handling reactjs

9
推荐指数
1
解决办法
9286
查看次数

功能中的拼接不会按预期改变字符

我已经在这个函数上工作了一段时间,但我不明白为什么即使我使用 .splice() 我也没有得到一个修改过的数组。我提供了开始更改数组“i”的索引、要删除的元素数“1”和要添加的元素“str[i]”。

function wave(str) {
  let result = [];
  for (let i = 0; i < str.length; i++) {
    if ((/[a-z]/ig).test(str[i])) {
      let st = str.split("").splice(i, 1 , str[i].toUpperCase());
      result.push(st);
    }
  }
 return result;

}


console.log(wave('hello')); // expected ["Hello", "hEllo", "heLlo", "helLo", "hellO"];
console.log(wave("two words")); // ["Two words", "tWo words", "twO words", "two Words", "two wOrds", "two woRds", "two worDs", "two wordS"];
Run Code Online (Sandbox Code Playgroud)

javascript for-loop splice array-splice

3
推荐指数
1
解决办法
71
查看次数