Реактивная страница автоматически начинает прокручиваться по какой-то причине - PullRequest
0 голосов
/ 25 апреля 2020

Я создаю приложение реагирования (без реагирующего маршрутизатора) с UIKit для портфеля, и со вчерашнего дня, когда я заканчивал раздел «Мои проекты», страница теперь автоматически прокручивается до этого идентификатора, даже если размещена на Netlify. Навбар имеет привязки к каждому идентификатору, но это определенно не вызывает проблемы (поскольку вся страница работала так, как задумывалось до того, как я вчера реализовал раздел проектов).

/#projects не добавляется в сеть адрес, и я не использую функции window.

Я пытался использовать ловушку useEffect () с window.scrollTo(0,0) внутри, но страница все еще начинается в разделе проектов и затем прокручивается наверх со странным видом.

Это размещенная версия , если вы хотите точно понять, о чем я говорю.

Вот компонент проектов:

const Projects = () => {

    const [selected, setSelected] = useState(proj[0]);

    return (
        <Fragment>
            <div className="projects" id="projects">
                <div className="about-head-wrapper">
                    <h2 className="about-head heading">Projects</h2>
                </div>
                <MediaQuery minDeviceWidth={1001}>
                    <div className="projects-container">
                        <div className="projects-container-buttons">
                            <button
                                href="#!"
                                onClick={() => {
                                    setSelected(proj[0]);
                                }}
                                className="project-button"
                                key={proj[0].title}
                                autoFocus>
                                <img src={proj[0].logo} alt="" />
                            </button>
                            <button
                                href="#!"
                                onClick={() => {
                                    setSelected(proj[1]);
                                }}
                                className="project-button"
                                key={proj[1].title}>
                                <img src={proj[1].logo} alt="" />
                            </button>
                            <button
                                href="#!"
                                onClick={() => {
                                    setSelected(proj[2]);
                                }}
                                className="project-button"
                                key={proj[2].title}>
                                <img src={proj[2].logo} alt="" />
                            </button>
                        </div>
                        <div className="projects-container-splitter" />
                        <div className="projects-container-info">
                            <ProjectInfo
                                title={selected.title}
                                sc={selected.sc}
                                desc={selected.desc}
                                link={selected.link}
                            />
                        </div>
                    </div>
                </MediaQuery>
                <MediaQuery maxDeviceWidth={1000}>
                    <div className="project-accordion-container">
                        <ul uk-accordion="collapsible: true; animation: false; multiple: true;">
                            {proj.map((p) => {
                                return (
                                    <ProjectAccordion
                                        title={p.title}
                                        sc={p.sc}
                                        desc={p.desc}
                                        link={p.link}
                                        logo={p.logo}
                                        key={p.title}
                                    />
                                );
                            })}
                        </ul>
                    </div>
                </MediaQuery>
            </div>
        </Fragment>
    );
};

А вот мой код s css для контейнера компонента:

.projects {
    height: 100rem;
    background-color: #3a4750;
    padding-top: 8rem;

    @media (max-width: 1000px) {
        height: 100%;
        padding-bottom: 5rem;
    }

    &-container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin: 5rem 0;
        height: 70rem;

        &-buttons {
            flex: 0 0 32%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        &-splitter {
            flex: 0 0 1px;
            height: 60rem;
            background-color: white;
            transform: rotate(0) scaleY(1);
        }

        &-info {
            flex: 0 0 65%;
        }
    }
}

1 Ответ

0 голосов
/ 26 апреля 2020

Обновление, я только что обнаружил autofocus, который случайно проскользнул мимо меня. Это было в .projects-container-buttons в первом элементе кнопки, который я использовал в старой версии компонента проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...