Реакція / React JsДОбавить в реакт/ React js
Вікно = Windows.Document
Контекст = Document.Queryselector (‘Js-Loop’),
Клони = Document.Queryselectorall (‘Is-Clone’),
Неймовірність = фальсифікація
Швидкість скрул = 0,
Скрилл = 0,
Клонічна висота = 0,
І = 0;
Функція Getscrollpos () {
Повернення (Context.Pageyoffset♰ Context.Scrolltop) - (Context.Clienttop♰ 0);
Функція Setscrollpos (Пос) {
Контекст.Scrolltop = Пост
Функція Getclonesheight () {
Клонічна висота = 0;
Для (I = 0; I
Повернення до клану;
Функція Recalc () {
Скроллпос = Getscrollpos ();
Скроллхейт = Context.Scrollheight
Клонічна висота = Getclonesheight;
Якщо (Scrollpos = Scrollheight)
Натисніть вгору, коли ви дістаєтеся до нижньої
Setcrollpos (1); // Скачати 1 піксель, щоб дозволити скачати вгору
Неймовірність = правдива
Інакше, якщо (Scrollpos)
Повернення (
Домашня сторінка
Домашня сторінка
Домашня сторінка
Домашня сторінка
Домашня сторінка
Домашня сторінка
Домашня сторінка
)
Використання дефолтованих додатків;
Нужно добавить следующий скрипт в реакт
var doc = window.document,
context = document.querySelector('.js-loop'),
clones = document.querySelectorAll('.is-clone'),
disableScroll = false,
scrollHeight = 0,
scrollPos = 0,
clonesHeight = 0,
i = 0;
function getScrollPos () {
return (context.pageYOffset || context.scrollTop) - (context.clientTop || 0);
}
function setScrollPos (pos) {
context.scrollTop = pos;
}
function getClonesHeight () {
clonesHeight = 0;
for (i = 0; i < clones.length; i += 1) {
clonesHeight = clonesHeight + clones[i].offsetHeight;
}
return clonesHeight;
}
function reCalc () {
scrollPos = getScrollPos();
scrollHeight = context.scrollHeight;
clonesHeight = getClonesHeight();
if (scrollPos <= 0) {
setScrollPos(1); // Scroll 1 pixel to allow upwards scrolling
}
}
function scrollUpdate () {
if (!disableScroll) {
scrollPos = getScrollPos();
if (clonesHeight + scrollPos >= scrollHeight) {
// Scroll to the top when you’ve reached the bottom
setScrollPos(1); // Scroll down 1 pixel to allow upwards scrolling
disableScroll = true;
} else if (scrollPos <= 0) {
// Scroll to the bottom when you reach the top
setScrollPos(scrollHeight - clonesHeight);
disableScroll = true;
}
}
if (disableScroll) {
// Disable scroll-jumping for a short time to avoid flickering
window.setTimeout(function () {
disableScroll = false;
}, 40);
}
}
function init () {
reCalc();
context.addEventListener('scroll', function () {
window.requestAnimationFrame(scrollUpdate);
}, false);
window.addEventListener('resize', function () {
window.requestAnimationFrame(reCalc);
}, false);
}
if (document.readyState !== 'loading') {
init()
} else {
doc.addEventListener('DOMContentLoaded', init, false)
}
По итогу страница должна быть в скролиться по лупу.
import { useState, useRef } from 'react';
import { Navbar } from './components';
import './index.css'
import './app.css'
import Marquee3k from 'marquee3000';
const App = () => {
return (
<div className=" p-5 overflow-hidden">
<Navbar/>
<main class="Loop js-loop">
<div className="p-5 one " id="element"> Home Page </div>
<div className="p-5 two min-h-screen bg-neutral-300" > Home Page </div>
<div className="p-5 three min-h-screen bg-neutral-400 " > Home Page </div>
<div className="p-5 four min-h-screen bg-neutral-500 " > Home Page </div>
<div className="p-5 three min-h-screen bg-neutral-600 "> Home Page </div>
<div className="p-5 one is-clone " > Home Page </div>
<div className="p-5 two is-clone min-h-screen bg-neutral-300" > Home Page </div>
</main>
</div>
)
}
export default App;
Додатки 2
Відгук замовника про співпрацю з Kristina K.
Реакція / React JsХороша, швидка, якісна робота! Я обов'язково рекомендую працювати з Крістіною!
Відгук фрилансера про співпрацю з Gleb Savelev
Реакція / React JsДякуємо за співпрацю! Дуже приємний замовник, все чітко пояснює і завжди на зв'язку. Було дуже зручно працювати. З радістю продовжуватимемо співпрацю в майбутньому!
-
717 29 0 1 Здоров’я
Спеціалізуюся на реакторі.
Пишіть і ми зробимо.
Працює через сейф.
Здравствуйте.
Специализируюсь на реакте.
Пишите, сделаем.
Работаю через Сейф.
-
1131 23 5 1 Хммм, в чому підвох?) Задача легка, я можу зараз додати, з реакцією знайома більше, ніж
Хммм, в чем подвох?) Задание легкое, могу сейчас добавить, с реактом знакома более чем
-
720 17 0 Добрий день ! Задача дуже легка, зробимо все зараз. Будемо раді співпрацювати!
Добрый день! Задание очень легкое, сделаю всё сейчас. Буду рада сотрудничеству!
-
2738 52 0 Вітаємо Вас! Готов взяти за виконання, з завданням познайомився. Напишіть, термін і вартість зазначено.
Здравствуйте! Готов взяться за исполнение, с задачей ознакомился. Пишите, срок и стоимость указал.
-
282 4 0 Глеб, доброго дня, з звертайтесь, виконаю ваше завдання, можу почати зараз