Skip to content

Instantly share code, notes, and snippets.

@jaseflow
Created August 4, 2013 23:29
Show Gist options
  • Select an option

  • Save jaseflow/6152488 to your computer and use it in GitHub Desktop.

Select an option

Save jaseflow/6152488 to your computer and use it in GitHub Desktop.
packages flights
jQuery(function($) {
var element = document.getElementById('flights-slider'),
defaultOptions = {
transform_always_block: true,
transform_min_scale: 1,
drag_block_horizontal: true,
drag_block_vertical: true,
drag_min_distance: 0
},
$flightWrap = $('.flights'),
$flightSlider = $('.flights__slider');
var hammertime = Hammer(element,defaultOptions);
var position = 0;
var dragStartPosition = 0;
var $scrollBar = $('.scroll__bar');
var scrollBarMax = 230;
var cardWidth = $('.flinfo').outerWidth();
var cardsTotal = $('.flinfo').length;
var cardsWidth = cardWidth * cardsTotal;
function setSliderHeight() {
var cardHeight = $('.flinfo').outerHeight() + 20;
$flightWrap.css('height',cardHeight);
};
function toggleActivePill(e) {
e.preventDefault();
$('.pills__active').attr('class','');
$(this).addClass('pills__active');
$flightWrap.addClass('flights--toggle');
setTimeout(function() {
$flightSlider.css('-webkit-transform', 'translate3d(0,0,0)');
}, 500);
setTimeout(function() {
$flightWrap.attr('class','flights');
}, 1000);
};
function toggleClassSelection() {
var activeOptionClass = 'flinfo__option--selected',
activeCardClass = 'flinfo--selected',
$option = $('.flinfo__option');
$option.removeClass(activeOptionClass);
$(this).addClass(activeOptionClass);
$('.flinfo').removeClass(activeCardClass);
$(this).parents('.flinfo').addClass(activeCardClass);
}
function setLeftPositions() {
var leftPos = 0;
$flightSlider.find('.flinfo').each(function() {
$(this).css('left',leftPos + 'px');
leftPos += cardWidth;
});
}
hammertime.on("dragstart", function(event) {
dragStartPosition = position;
});
hammertime.on("drag", function(event) {
var _ref,
adjustment = Math.floor(event.gesture.distance);
if ((_ref = event.gesture.direction) !== 'left' && _ref !== 'right') {
return;
}
if (position >= 0 && event.gesture.direction === 'right') {
return;
}
if (position <= ((cardsWidth - cardWidth) * -1) && event.gesture.direction === 'left') {
return;
}
if(event.gesture.direction === 'left') {
adjustment = Math.floor(event.gesture.distance) * -1;
}
position = dragStartPosition + adjustment;
$(element).find('.flights__slider').css('-webkit-transform', 'translate3d(' + position + 'px,0,0)');
});
hammertime.on("dragend", function(event) {
dragStartPosition = position;
});
setSliderHeight();
setLeftPositions()
// $('.pills').on('click','a',toggleActivePill);
$('.pills a').fastClick(function() {
toggleActivePill();
});
$('.flinfo__option').fastClick(function() {
toggleClassSelection();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment