From 41bec13afc225d083134405fc5c1b3b44bb33fd9 Mon Sep 17 00:00:00 2001 From: afc163 Date: Sat, 28 Nov 2015 15:34:39 +0800 Subject: Change current select item to second place --- src/module/Select.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/module') diff --git a/src/module/Select.jsx b/src/module/Select.jsx index be4c025..570ff37 100644 --- a/src/module/Select.jsx +++ b/src/module/Select.jsx @@ -58,7 +58,7 @@ const Select = React.createClass({ // move to selected item const select = ReactDom.findDOMNode(this); const list = ReactDom.findDOMNode(this.refs.list); - let index = this.props.selectedIndex - 2; + let index = this.props.selectedIndex - 1; if (index < 0) { index = 0; } -- cgit v1.2.3 From a9fbba23bb3eca7275602bf27183cdb3e34071cf Mon Sep 17 00:00:00 2001 From: afc163 Date: Sat, 28 Nov 2015 15:48:46 +0800 Subject: faster scroll --- src/module/Select.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/module') diff --git a/src/module/Select.jsx b/src/module/Select.jsx index 570ff37..b386d07 100644 --- a/src/module/Select.jsx +++ b/src/module/Select.jsx @@ -35,7 +35,7 @@ const Select = React.createClass({ componentDidUpdate() { // smooth scroll to selected option - this.scrollToSelected(200); + this.scrollToSelected(120); }, onSelect(value) { -- cgit v1.2.3 From ec9325586535a0067af78586873349f53dcfdd4c Mon Sep 17 00:00:00 2001 From: afc163 Date: Sat, 28 Nov 2015 15:55:15 +0800 Subject: scroll without a scroll bar http://stackoverflow.com/questions/25095539/allow-scroll-but-hide-scrollbar --- src/module/Select.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/module') diff --git a/src/module/Select.jsx b/src/module/Select.jsx index b386d07..119e59e 100644 --- a/src/module/Select.jsx +++ b/src/module/Select.jsx @@ -64,7 +64,7 @@ const Select = React.createClass({ } const topOption = list.children[index]; const to = topOption.offsetTop - select.offsetTop; - scrollTo(select, to, duration); + scrollTo(list, to, duration); }, render() { -- cgit v1.2.3 From 85d09ad3310c26d61b6af60b28d680eed1f2bf1c Mon Sep 17 00:00:00 2001 From: afc163 Date: Sun, 29 Nov 2015 15:14:32 +0800 Subject: show scrollbar when hover --- src/module/Select.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/module') diff --git a/src/module/Select.jsx b/src/module/Select.jsx index 119e59e..b386d07 100644 --- a/src/module/Select.jsx +++ b/src/module/Select.jsx @@ -64,7 +64,7 @@ const Select = React.createClass({ } const topOption = list.children[index]; const to = topOption.offsetTop - select.offsetTop; - scrollTo(list, to, duration); + scrollTo(select, to, duration); }, render() { -- cgit v1.2.3 From 0b9ef41f8507b6d5f11b4c42d57397e9a1850402 Mon Sep 17 00:00:00 2001 From: afc163 Date: Sun, 29 Nov 2015 15:50:19 +0800 Subject: replace setTimeout with requestAnimationFrame --- src/module/Select.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/module') diff --git a/src/module/Select.jsx b/src/module/Select.jsx index b386d07..0b91ac5 100644 --- a/src/module/Select.jsx +++ b/src/module/Select.jsx @@ -3,6 +3,10 @@ import ReactDom from 'react-dom'; import classnames from 'classnames'; const scrollTo = (element, to, duration) => { + const requestAnimationFrame = window.requestAnimationFrame || + function requestAnimationFrameTimeout() { + return setTimeout(arguments[0], 10); + }; // jump to target if duration zero if (duration <= 0) { element.scrollTop = to; @@ -11,11 +15,11 @@ const scrollTo = (element, to, duration) => { const difference = to - element.scrollTop; const perTick = difference / duration * 10; - setTimeout(() => { + requestAnimationFrame(() => { element.scrollTop = element.scrollTop + perTick; if (element.scrollTop === to) return; scrollTo(element, to, duration - 10); - }, 10); + }); }; const Select = React.createClass({ -- cgit v1.2.3