ТЫ НЕ ПРОЙДЕШЬ!!!и все.
<CSSTransitionGroup transitionName="ProductCategoriesMenu--submenu-transition" transitionEnter={false}>
{category.products.length && isCategorySelected ? this.renderSubMenu(category) : null}
</CSSTransitionGroup>
.ProductCategoriesMenu--submenu-transition-leave {
max-height: 1000px;
overflow: hidden;
}
.ProductCategoriesMenu--submenu-transition-leave-active {
max-height: 0;
transition: max-height 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}
var hotel = {
name : 'Lol',
rooms : 212,
gym : true
};
gym = (hotel.gym == true ? 'Есть тренажерка' : 'Нет тренажерки');
var treshold = 10;
var touchStart = {
x: 0,
y: 0
};
$(elem).on({
'touchstart': function(e) {
var touch = e.originalEvent.changedTouches[0];
touchStart.x = touch.clientX;
touchStart.y = touch.clientY;
},
'touchend': function(e) {
var touch = e.originalEvent.changedTouches[0];
var dx = Math.abs(touch.clientX - touchStart.x);
var dy = Math.abs(touch.clientY - touchStart.y);
// если дельта по x и по y меньше некоторого порогового значения,
// значит у нас не свайп, а клик
if (dx < treshold && dy < treshold) {
console.log('this is click');
}
}
});
MqNeEER2KT662ySdR
, HgyiSGnxTn8vEqp9t
, SJkQW7phpwKomnSuz
- это его состояния, а переходы между ними - это:> [(i, j) for i in range(1, 4) for j in range(i + 1, 4)]
[(1, 2), (1, 3), (2, 3)]
comb ∷ Int → [a] → [[a]]
comb 0 _ = [[]] -- из нуля элементов можно составить только пустой список
comb n [] = [] -- из пустого списка нельзя составить ничего
comb n lst = do -- списочная монада, работает как вложенные for
-- tails для [1,2,3] вернёт [[1,2,3], [2,3], [3], []], т.е. все возможные хвосты
-- мы перебираем все хвосты, кроме последнего пустого
-- и дербаним его на голову l и остаток ls
(l:ls) ← filter (not ∘ null) $ tails lst
-- перебираем сочетания из n - 1 элементов от ls
ls' ← comb (n - 1) ls
-- и присобачиваем l к каждому
return (l:ls')