Added scroll to bottom arrows for mobile

Этот коммит содержится в:
hmhealey
2015-12-16 09:30:46 -05:00
родитель c7fb1f7fe9
Коммит b4eb83d66f
3 изменённых файлов: 42 добавлений и 3 удалений

Просмотреть файл

@@ -23,6 +23,7 @@ export default class PostsView extends React.Component {
this.createPosts = this.createPosts.bind(this);
this.updateScrolling = this.updateScrolling.bind(this);
this.handleResize = this.handleResize.bind(this);
this.scrollToBottom = this.scrollToBottom.bind(this);
this.jumpToPostNode = null;
this.wasAtBottom = true;
@@ -283,9 +284,7 @@ export default class PostsView extends React.Component {
}
updateScrolling() {
if (this.props.scrollType === PostsView.SCROLL_TYPE_BOTTOM) {
window.requestAnimationFrame(() => {
this.refs.postlist.scrollTop = this.refs.postlist.scrollHeight;
});
this.scrollToBottom();
} else if (this.props.scrollType === PostsView.SCROLL_TYPE_NEW_MESSAGE) {
window.requestAnimationFrame(() => {
// If separator exists scroll to it. Otherwise scroll to bottom.
@@ -335,6 +334,11 @@ export default class PostsView extends React.Component {
handleResize() {
this.updateScrolling();
}
scrollToBottom() {
window.requestAnimationFrame(() => {
this.refs.postlist.scrollTop = this.refs.postlist.scrollHeight;
});
}
componentDidMount() {
if (this.props.postList != null) {
this.updateScrolling();
@@ -460,9 +464,26 @@ export default class PostsView extends React.Component {
);
}
let scrollToBottomArrows = null;
if ($(window).width() <= 768) {
let scrollToBottomArrowsClass = 'post-list__arrows';
if (this.state.isScrolling && !this.wasAtBottom) {
scrollToBottomArrowsClass += ' scrolling';
}
scrollToBottomArrows = (
<div
ref='postArrows'
className={scrollToBottomArrowsClass}
onClick={this.scrollToBottom}
/>
);
}
return (
<div className={activeClass}>
{floatingTimestamp}
{scrollToBottomArrows}
<div
ref='postlist'
className='post-list-holder-by-time'

Просмотреть файл

@@ -274,6 +274,24 @@ body.ios {
}
}
.post-list__arrows {
background: url('../images/postArrows.png') center;
@include background-size(28px 28px);
background-repeat: no-repeat;
width: 40px;
height: 40px;
position: absolute;
bottom: 50px;
right: 5px;
z-index: 50;
@include opacity(0);
@include single-transition(all, 0.3s);
&.scrolling {
@include opacity(1);
}
}
.post-create__container {
form {
width: 100%;

Двоичные данные
web/static/images/postArrows.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.6 KiB