You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.8 KiB
97 lines
2.8 KiB
import React from "react"; |
|
|
|
import ScrollContainer from "react-indiana-drag-scroll"; |
|
/** min から max までの数字の入った配列を生成する関数 */ |
|
const range = (min, max, step = 1) => { |
|
return Array.from( |
|
{ length: (max - min + step) / step }, |
|
(v, k) => min + k * step |
|
); |
|
}; |
|
export default function IndianaDragScroll() { |
|
return ( |
|
<div className="bg-blue-400 p-4 h-52"> |
|
<ScrollContainer ignoreElements={"#not-work-drag"}> |
|
<div |
|
className="bg-red-400 h-52" |
|
id="not-work-drag" |
|
style={{ |
|
height: "100%", |
|
background: "rgba(0, 208, 255, 0.8)", |
|
position: "absolute", |
|
display: "flex", |
|
flexDirection: "column", |
|
justifyContent: "space-between", |
|
left: "12%", |
|
}} |
|
></div> |
|
<div className="flex flex-col h-52 bg-red-400" style={{}}> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
<div>mahdi</div> |
|
</div> |
|
</ScrollContainer> |
|
<div className="w-full bg-yellow-300 h-5 my-20 text-center text-base text-red-600 rounded"> |
|
divider between vertical && horizontal scroll bar inside |
|
IndianaDragScroll COMPONENT |
|
</div> |
|
<ScrollContainer ignoreElements={"#not-work-drag"}> |
|
<div |
|
id="not-work-drag" |
|
style={{ |
|
height: "100%", |
|
background: "rgba(0, 208, 255, 0.8)", |
|
position: "absolute", |
|
display: "flex", |
|
flexDirection: "column", |
|
justifyContent: "space-between", |
|
left: "12%", |
|
}} |
|
> |
|
<div>この上では</div> |
|
<div>ドラッグしてもスクロールしません</div> |
|
</div> |
|
<div style={{ display: "flex" }}> |
|
{range(0, 100).map((i, index) => ( |
|
<div key={index} style={{ margin: "1em .25em" }}> |
|
{i} |
|
</div> |
|
))} |
|
</div> |
|
</ScrollContainer> |
|
</div> |
|
); |
|
}
|
|
|