Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit f62072e

Browse files
committed
back to top but in progress
1 parent e340bb1 commit f62072e

File tree

5 files changed

+82
-42
lines changed

5 files changed

+82
-42
lines changed

css/obBase.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6247,3 +6247,17 @@ input[type="checkbox"].fieldItem:checked + label .togLabelOff {
62476247
background-color: #eeeae1;
62486248
height: 100%;
62496249
}
6250+
6251+
.backToTop {
6252+
position: fixed;
6253+
bottom: 0;
6254+
right: 73px;
6255+
padding: 10px;
6256+
background-color: #086A9E;
6257+
transform: translateY(100%);
6258+
transition: transform 300ms ease;
6259+
}
6260+
6261+
.backToTop.slideUp {
6262+
transform: translateY(0);
6263+
}

js/templates/backToTop.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div class="backToTop <% ob.className && print(ob.className) %>"><span class="icon ion-chevron-up"></span> Back To Top</div>

js/templates/home.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ <h1 class="fancy-heading fontSize20 vCentered js-discoverHeading"><%= polyglot.t
9898
</div>
9999
</div>
100100
</div>
101+
<%= ob.backToTopTmpl() %>
101102
<div class="js-feed minHeight650 rowTop30 hide alignCenter fontSize14">
102103
<h1 class="fancy-heading width100 fontweight500"><%= polyglot.t('ComingSoon') %></h1>
103104
<div class="row20">

js/views/homeVw.js

Lines changed: 65 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
'use strict';
22

33
var __ = require('underscore'),
4+
$ = require('jquery'),
45
Backbone = require('backbone'),
5-
$ = require('jquery');
6-
Backbone.$ = $;
7-
var loadTemplate = require('../utils/loadTemplate'),
6+
velocity = require('velocity-animate'),
7+
loadTemplate = require('../utils/loadTemplate'),
88
baseVw = require('./baseVw'),
99
itemShortView = require('./itemShortVw'),
1010
itemShortModel = require('../models/itemShortMd'),
@@ -27,7 +27,8 @@ module.exports = baseVw.extend({
2727
'focus .js-homeSearchItems': 'searchItemsFocus',
2828
'blur .js-homeSearchItems': 'searchItemsBlur',
2929
'click .js-homeListingsFollowed': 'clickListingsFollowed',
30-
'click .js-homeListingsAll': 'clickListingsAll'
30+
'click .js-homeListingsAll': 'clickListingsAll',
31+
'click .backToTop': 'clickBackToTop'
3132
},
3233

3334
initialize: function(options){
@@ -150,46 +151,50 @@ module.exports = baseVw.extend({
150151
render: function(){
151152
var self = this;
152153
$('#content').html(this.$el);
153-
loadTemplate('./js/templates/home.html', function(loadedTemplate) {
154-
self.$el.html(loadedTemplate());
155-
self.setState(self.state, self.searchItemsText);
156-
if(self.model.get('page').profile.vendor == true) {
157-
self.$el.find('.js-homeCreateStore').addClass('hide');
158-
self.$el.find('.js-homeMyPage').addClass('show');
159-
self.$el.find('.js-homeCreateListing').addClass('show');
160-
}else{
161-
self.$el.find('.js-homeCreateStore').addClass('show');
162-
self.$el.find('.js-homeCreateListing').addClass('hide');
163-
}
164-
165-
//get vendors and items
166-
self.loadingVendors = true;
167-
self.socketView.getVendors(self.socketUsersID);
168-
//set the filter
169-
if(localStorage.getItem('homeShowAll') == "yes"){
170-
self.setListingsAll();
171-
self.loadAllItems();
172-
} else {
173-
self.setListingsFollowed();
174-
self.loadFollowedItems();
175-
}
176-
177-
//listen to scrolling on container
178-
self.scrollHandler = __.bind(
179-
__.throttle(self.onScroll, 100),
180-
self
181-
);
182-
self.obContainer.on('scroll', self.scrollHandler);
183-
184-
//populate search field
185-
if(self.searchItemsText){
186-
self.$el.find('.js-homeSearchItems').val("#" + self.searchItemsText);
187-
self.$el.find('.js-homeListingToggle').addClass('hide');
188-
$('#obContainer').scrollTop(0);
189-
}
154+
loadTemplate('./js/templates/backToTop.html', function(backToTopTmpl) {
155+
loadTemplate('./js/templates/home.html', function(loadedTemplate) {
156+
self.$el.html(loadedTemplate({
157+
backToTopTmpl: backToTopTmpl
158+
}));
159+
160+
self.setState(self.state, self.searchItemsText);
161+
if(self.model.get('page').profile.vendor == true) {
162+
self.$el.find('.js-homeCreateStore').addClass('hide');
163+
self.$el.find('.js-homeMyPage').addClass('show');
164+
self.$el.find('.js-homeCreateListing').addClass('show');
165+
}else{
166+
self.$el.find('.js-homeCreateStore').addClass('show');
167+
self.$el.find('.js-homeCreateListing').addClass('hide');
168+
}
190169

170+
//get vendors and items
171+
self.loadingVendors = true;
172+
self.socketView.getVendors(self.socketUsersID);
173+
//set the filter
174+
if(localStorage.getItem('homeShowAll') == "yes"){
175+
self.setListingsAll();
176+
self.loadAllItems();
177+
} else {
178+
self.setListingsFollowed();
179+
self.loadFollowedItems();
180+
}
191181

182+
//listen to scrolling on container
183+
self.scrollHandler = __.bind(
184+
__.throttle(self.onScroll, 100),
185+
self
186+
);
187+
self.obContainer.on('scroll', self.scrollHandler);
188+
189+
//populate search field
190+
if(self.searchItemsText){
191+
self.$el.find('.js-homeSearchItems').val("#" + self.searchItemsText);
192+
self.$el.find('.js-homeListingToggle').addClass('hide');
193+
$('#obContainer').scrollTop(0);
194+
}
192195

196+
self.$backToTop = self.$('.backToTop');
197+
});
193198
});
194199
},
195200

@@ -397,7 +402,16 @@ module.exports = baseVw.extend({
397402

398403
unblockUserClick: function(e) {
399404
this.userModel.unblockUser(e.view.model.get('guid'));
400-
},
405+
},
406+
407+
clickBackToTop: function() {
408+
this.obContainer.velocity('scroll', {
409+
offset: 0,
410+
complete: () => {
411+
this.$backToTop.removeClass('slideUp');
412+
}
413+
});
414+
},
401415

402416
onScroll: function(){
403417
if(this.obContainer[0].scrollTop + this.obContainer[0].clientHeight + 200 > this.obContainer[0].scrollHeight && !this.searchItemsText){
@@ -411,6 +425,15 @@ module.exports = baseVw.extend({
411425
this.socketView.getVendors(this.socketUsersID);
412426
}
413427
}
428+
429+
if (
430+
this.state === "products" && this.obContainer[0].scrollTop > 180 ||
431+
this.state === "vendors" && this.obContainer[0].scrollTop > 140
432+
) {
433+
this.$backToTop.addClass('slideUp');
434+
} else {
435+
this.$backToTop.removeClass('slideUp');
436+
}
414437
},
415438

416439
clearItems: function(){

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"sortablejs": "^1.4.2",
4242
"taggle": "1.6.1",
4343
"underscore": "1.8.3",
44+
"velocity-animate": "^1.2.3",
4445
"winreg": "^1.1.1",
4546
"yargs": "^4.1.0"
4647
},

0 commit comments

Comments
 (0)