npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

my-virtual-scroll

v1.3.0

Published

my-virtual scroll

Downloads

19

Readme

my-virtual-scroll

설치

npm i my-virtual-scroll

사용

interface Row {
  name: string;
}
// 스크롤이 생성되는 영역
const container: Element;
// 컨텐츠 영역
const wrapper: Element;
// or const myVirtualScroll = new MyVirtualScroll(container, wrapper, {
const myVirtualScroll = new MyVirtualScroll<Row>(container, wrapper, {
  // 옵션
  rowSize: 30,
  bench: 0,
  rows: [],
  direction: 'vertical'
  autoStyles: true
});
myVirtualScroll.addContainerScrollEvent(handleContainerScroll);

Methods

addContainerScrollEvent

가상스크롤에 대한 스크롤 이벤트를 등록합니다. 스크롤 이동 시 Rows Update 및 스타일 변경을 하기 위해 등록할 수 있습니다.

myVirtualScroll.addContainerScrollEvent(handleContainerScroll);

removeContainerScrollEvent

가상스크롤 등록 된 스크롤 이벤트를 제거 합니다.

myVirtualScroll.removeContainerScrollEvent(handleContainerScroll);

getWrapperStyle

현재 스크롤 위치에 해당하는 Styles를 가져옵니다. 해당 Styles을 container에 주입하여 현재 위치로 이동시킵니다.

myVirtualScroll.getWrapperStyle();

getRenderRows

현재 스크롤 위치에 해당하는 Rows 목록을 받아올 수 있습니다.

myVirtualScroll.getRenderRows();

getRenderFirstRow

현재 그려진 첫번쨰 Row 번호를 반환합니다.

myVirtualScroll.getRenderRows();

getRenderLastRow

현재 그려진 마지막 Row 번호를 반환합니다.

myVirtualScroll.getRenderRows();

updateRows

Rows를 업데이트 합니다. Rows 업데이트 후 DOM 렌더링 완료 후 Return 된 Method를 호출 해 주어야 합니다.

const rendered = myVirtualScroll.updateRows();

rendered();

moveScrollToRow

Row에 해당하는 위치로 스크롤을 이동시킵니다.

// 100번째 Row로 스크롤 이동
myVirtualScroll.moveScrollToRow(100);

옵션

rows

Type: Row<R>[]
Default: [] Requried: false

rowSize

Type: number
Default: 0 Requried: false

row의 너비 및 높이 값(px) 입니다. 0 입력 시 동적으로 계산되며, 동적으로 계산 시 최초 한 번 모든 Row가 노출됩니다.

bench

Type: number
Default: 0 Requried: false

위아래 추가로 보여 줄 Row 갯수 화면에 렌더링 된 갯수가 10개이고 bench가 1인 경우 총 12개, bench가 2인 경우 14개가 보입니다. 0으로 설정 할 경우 스크롤 이동 시 빈 화면이 보일 수 있습니다.

direction

Type: horizontal | vertical Default: vertical Requried: false

가상 스크롤 사용할 방향입니다. (가로, 세로)

autoStyles

Type: boolean
Default: false Requried: false

스타일을 자동으로 업데이트 합니다.

Examples