update 25-03-2023
BIN
demo-mevabe-2/images/arrow-left.png
Normal file
|
After Width: | Height: | Size: 407 B |
BIN
demo-mevabe-2/images/bg/1.png
Normal file
|
After Width: | Height: | Size: 517 B |
BIN
demo-mevabe-2/images/bg/10.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
demo-mevabe-2/images/bg/11.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
demo-mevabe-2/images/bg/12.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
demo-mevabe-2/images/bg/13-1.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
demo-mevabe-2/images/bg/13.png
Normal file
|
After Width: | Height: | Size: 815 B |
BIN
demo-mevabe-2/images/bg/14.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
demo-mevabe-2/images/bg/15.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
demo-mevabe-2/images/bg/16.png
Normal file
|
After Width: | Height: | Size: 920 B |
BIN
demo-mevabe-2/images/bg/17.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
demo-mevabe-2/images/bg/2.png
Normal file
|
After Width: | Height: | Size: 665 B |
BIN
demo-mevabe-2/images/bg/3.png
Normal file
|
After Width: | Height: | Size: 863 B |
BIN
demo-mevabe-2/images/bg/4.png
Normal file
|
After Width: | Height: | Size: 883 B |
BIN
demo-mevabe-2/images/bg/5.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
demo-mevabe-2/images/bg/6.png
Normal file
|
After Width: | Height: | Size: 484 B |
BIN
demo-mevabe-2/images/bg/7.png
Normal file
|
After Width: | Height: | Size: 846 B |
BIN
demo-mevabe-2/images/bg/8.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
demo-mevabe-2/images/bg/9.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
demo-mevabe-2/images/bg/mb-1.png
Normal file
|
After Width: | Height: | Size: 358 B |
BIN
demo-mevabe-2/images/cart-home-min.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
demo-mevabe-2/images/cart-ticket.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
demo-mevabe-2/images/footer-bct.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
demo-mevabe-2/images/global-footer-newsletter.png
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
demo-mevabe-2/images/global/brand-1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
demo-mevabe-2/images/global/brand-2.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
demo-mevabe-2/images/global/brand-3.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
demo-mevabe-2/images/global/brand-4.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
demo-mevabe-2/images/global/brand-5.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
demo-mevabe-2/images/global/brand-6.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
demo-mevabe-2/images/global/brand-7.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
demo-mevabe-2/images/global/brand-8.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
demo-mevabe-2/images/home-product-title.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
demo-mevabe-2/images/home/banner-collection.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
demo-mevabe-2/images/home/banner-product-1.png
Normal file
|
After Width: | Height: | Size: 294 KiB |
BIN
demo-mevabe-2/images/home/banner-product-2.png
Normal file
|
After Width: | Height: | Size: 260 KiB |
BIN
demo-mevabe-2/images/home/banner-product-3.png
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
demo-mevabe-2/images/home/customer-comment-avatar.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
demo-mevabe-2/images/home/home-comment-1.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
demo-mevabe-2/images/home/home-comment-2.png
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
demo-mevabe-2/images/home/home-comment-3.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
demo-mevabe-2/images/home/right-1.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
demo-mevabe-2/images/home/right-2.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
demo-mevabe-2/images/home/slider.png
Normal file
|
After Width: | Height: | Size: 335 KiB |
BIN
demo-mevabe-2/images/icon-mess.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
demo-mevabe-2/images/icon-zalo.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
demo-mevabe-2/images/logo.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
demo-mevabe-2/images/no_image.jpg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
demo-mevabe-2/images/p-discount.png
Normal file
|
After Width: | Height: | Size: 473 B |
BIN
demo-mevabe-2/images/pd-icon-zalo.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
demo-mevabe-2/images/product-1.jpg
Normal file
|
After Width: | Height: | Size: 880 KiB |
BIN
demo-mevabe-2/images/product-2.jpg
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
demo-mevabe-2/images/product-3.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
demo-mevabe-2/images/product-4.jpg
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
demo-mevabe-2/images/product-5.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
demo-mevabe-2/images/product-6.jpg
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
demo-mevabe-2/images/send-cart-face.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
demo-mevabe-2/images/sprite.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
demo-mevabe-2/images/star.png
Normal file
|
After Width: | Height: | Size: 814 B |
BIN
demo-mevabe-2/images/star_rating.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
demo-mevabe-2/images/zalo.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
1308
demo-mevabe-2/index-mobile.html
Normal file
1279
demo-mevabe-2/index.html
Normal file
1
demo-mevabe-2/js/carousel.js
Normal file
13
demo-mevabe-2/js/fancyboxmin.js
Normal file
454
demo-mevabe-2/js/lib.js
Normal file
2
demo-mevabe-2/js/magiczoom.js
Normal file
16
demo-mevabe-2/js/mmenu.js
Normal file
1
demo-mevabe-2/js/scrollToFixed.js
Normal file
231
demo-mevabe-2/js/slick.js
Normal file
229
demo-mevabe-2/js/slickanimation.js
Normal file
@@ -0,0 +1,229 @@
|
||||
/*
|
||||
slick-animation.js
|
||||
Version: 0.3.3 Beta
|
||||
Author: Marvin Hübner
|
||||
Docs: https://github.com/marvinhuebner/slick-animation
|
||||
Repo: https://github.com/marvinhuebner/slick-animation
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
$.fn.slickAnimation = function () {
|
||||
var currentSlickSlider = $(this);
|
||||
|
||||
var slickItems = currentSlickSlider.find('.slick-list .slick-track > div');
|
||||
var firstSlickItem = currentSlickSlider.find('[data-slick-index="0"]');
|
||||
|
||||
var animatedClass = 'animated';
|
||||
var visible = {opacity: '1'};
|
||||
var hidden = {opacity: '0'};
|
||||
|
||||
/**
|
||||
* function for setting animationIn and animationOut class
|
||||
* @param obj
|
||||
* @param type
|
||||
* @param animationIn
|
||||
* @param animatedClass
|
||||
* @param visibility
|
||||
*/
|
||||
|
||||
function slickSetAnimationDefault(obj, type, animationIn, animatedClass, visibility) {
|
||||
visibility = typeof visibility !== 'undefined' ? visibility : false;
|
||||
|
||||
slickRemoveAnimation(obj, 'delay');
|
||||
slickRemoveAnimation(obj, 'duration');
|
||||
|
||||
if (type['opacity'] == 1) {
|
||||
obj.addClass(animationIn);
|
||||
obj.addClass(animatedClass);
|
||||
} else {
|
||||
obj.removeClass(animationIn);
|
||||
obj.removeClass(animatedClass);
|
||||
}
|
||||
|
||||
if (visibility) obj.css(type);
|
||||
}
|
||||
|
||||
/**
|
||||
* get timeout when delay, duration, delay and duration is set
|
||||
* @param delayIn
|
||||
* @param durationIn
|
||||
* @returns {number}
|
||||
*/
|
||||
|
||||
function getTimeout(delayIn, durationIn) {
|
||||
if (delayIn) {
|
||||
return delayIn * 1000 + 1000;
|
||||
|
||||
} else if (durationIn) {
|
||||
return durationIn * 1000;
|
||||
|
||||
} else if ((delayIn) || (durationIn)) {
|
||||
return (delayIn * 1000) + (durationIn * 1000);
|
||||
}
|
||||
return 1000;
|
||||
}
|
||||
|
||||
/**
|
||||
* add css animations for delay and duration
|
||||
* @param obj
|
||||
* @param animation
|
||||
* @param value
|
||||
*/
|
||||
function slickAddAnimation(obj, animation, value) {
|
||||
var delayInAttr = [
|
||||
'animation-' + animation,
|
||||
'-webkit-animation-' + animation,
|
||||
'-moz-animation-' + animation,
|
||||
'-o-animation-' + animation,
|
||||
'-ms-animation-' + animation
|
||||
];
|
||||
var delayInAttributes = {};
|
||||
delayInAttr.forEach(function (entry) {
|
||||
|
||||
delayInAttributes[entry] = value + 's';
|
||||
});
|
||||
obj.css(delayInAttributes);
|
||||
}
|
||||
|
||||
/**
|
||||
* remove css animations for delay and duration
|
||||
* @param obj
|
||||
* @param animation
|
||||
*/
|
||||
function slickRemoveAnimation(obj, animation) {
|
||||
var delayInAttr = [
|
||||
'animation-' + animation,
|
||||
'-webkit-animation-' + animation,
|
||||
'-moz-animation-' + animation,
|
||||
'-o-animation-' + animation,
|
||||
'-ms-animation-' + animation
|
||||
];
|
||||
var delayInAttributes = {};
|
||||
delayInAttr.forEach(function (entry) {
|
||||
|
||||
delayInAttributes[entry] = '';
|
||||
});
|
||||
obj.css(delayInAttributes);
|
||||
}
|
||||
|
||||
slickItems.each(function () {
|
||||
var slickItem = $(this);
|
||||
|
||||
slickItem.find('[data-animation-in]').each(function () {
|
||||
var self = $(this);
|
||||
|
||||
self.css(hidden);
|
||||
|
||||
var animationIn = self.attr('data-animation-in');
|
||||
var animationOut = self.attr('data-animation-out');
|
||||
var delayIn = self.attr('data-delay-in');
|
||||
var durationIn = self.attr('data-duration-in');
|
||||
var delayOut = self.attr('data-delay-out');
|
||||
var durationOut = self.attr('data-duration-out');
|
||||
|
||||
if (animationOut) {
|
||||
if (firstSlickItem.length > 0) {
|
||||
if (slickItem.hasClass('slick-current')) {
|
||||
|
||||
slickSetAnimationDefault(self, visible, animationIn, animatedClass, true);
|
||||
|
||||
if (delayIn) {
|
||||
slickAddAnimation(self, 'delay', delayIn);
|
||||
}
|
||||
if (durationIn) {
|
||||
slickAddAnimation(self, 'duration', durationIn);
|
||||
}
|
||||
|
||||
setTimeout(function () {
|
||||
slickSetAnimationDefault(self, hidden, animationIn, animatedClass);
|
||||
slickSetAnimationDefault(self, visible, animationOut, animatedClass);
|
||||
if (delayOut) {
|
||||
slickAddAnimation(self, 'delay', delayOut);
|
||||
}
|
||||
if (durationOut) {
|
||||
slickAddAnimation(self, 'duration', durationOut);
|
||||
}
|
||||
setTimeout(function() {
|
||||
slickRemoveAnimation(self, 'delay');
|
||||
slickRemoveAnimation(self, 'duration');
|
||||
}, getTimeout(delayOut, durationOut));
|
||||
|
||||
}, getTimeout(delayIn, durationIn));
|
||||
}
|
||||
}
|
||||
|
||||
currentSlickSlider.on('afterChange', function (event, slick, currentSlider) {
|
||||
if (slickItem.hasClass('slick-current')) {
|
||||
|
||||
slickSetAnimationDefault(self, visible, animationIn, animatedClass, true);
|
||||
|
||||
if (delayIn) {
|
||||
slickAddAnimation(self, 'delay', delayIn);
|
||||
}
|
||||
if (durationIn) {
|
||||
slickAddAnimation(self, 'duration', durationIn);
|
||||
}
|
||||
|
||||
setTimeout(function () {
|
||||
slickSetAnimationDefault(self, hidden, animationIn, animatedClass);
|
||||
slickSetAnimationDefault(self, visible, animationOut, animatedClass);
|
||||
|
||||
if (delayOut) {
|
||||
slickAddAnimation(self, 'delay', delayOut);
|
||||
}
|
||||
if (durationOut) {
|
||||
slickAddAnimation(self, 'duration', durationOut);
|
||||
}
|
||||
setTimeout(function() {
|
||||
slickRemoveAnimation(self, 'delay');
|
||||
slickRemoveAnimation(self, 'duration');
|
||||
}, getTimeout(delayOut, durationOut));
|
||||
|
||||
}, getTimeout(delayIn, durationIn));
|
||||
}
|
||||
});
|
||||
|
||||
currentSlickSlider.on('beforeChange', function (event, slick, currentSlider) {
|
||||
slickSetAnimationDefault(self, hidden, animationOut, animatedClass, true);
|
||||
|
||||
});
|
||||
} else {
|
||||
|
||||
if (firstSlickItem.length > 0) {
|
||||
if (slickItem.hasClass('slick-current')) {
|
||||
slickSetAnimationDefault(self, visible, animationIn, animatedClass, true);
|
||||
|
||||
if (delayIn) {
|
||||
slickAddAnimation(self, 'delay', delayIn);
|
||||
}
|
||||
if (durationIn) {
|
||||
slickAddAnimation(self, 'duration', durationIn);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
currentSlickSlider.on('afterChange', function (event, slick, currentSlider) {
|
||||
if (slickItem.hasClass('slick-current')) {
|
||||
slickSetAnimationDefault(self, visible, animationIn, animatedClass, true);
|
||||
|
||||
if (delayIn) {
|
||||
slickAddAnimation(self, 'delay', delayIn);
|
||||
}
|
||||
if (durationIn) {
|
||||
slickAddAnimation(self, 'duration', durationIn);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
currentSlickSlider.on('beforeChange', function (event, slick, currentSlider) {
|
||||
slickSetAnimationDefault(self, hidden, animationIn, animatedClass, true);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
return this;
|
||||
}
|
||||
})(jQuery);
|
||||