Ну, я вроде как новый с jQuery и javascript, и я написал «некоторый» код для слайдера изображения, но он огромен. Я убежден, что это может быть короче, но я не знаю, как это сделать. Может ли кто-нибудь показать мне, как это сделать, чтобы я мог учиться на этом? Заранее спасибо: DСделать код javascript/jquery короче?
PS Я не хочу выглядеть ленивым, я действительно хочу, чтобы стать лучше в Javascript и Jquery
Вот мой код
jQuery(document).ready(function(){
//Variables for image slider
var imgWrapper = $('.carousel-wrapper'),
img = $('.carousel-box'),
imgWidth = $('.carousel-box').width(),
imgLength = $('.carousel-box').length, // 4
currentMargin = imgWrapper.css('margin-left').replace('px',''), //0px
responsiveLength = 3,
maxMargin = -((imgLength - responsiveLength) * imgWidth),
minMargin = 0; //0px
$(window).resize(function(){
if ($(window).width() <= 1080) {
responsiveLength = 2;
maxMargin = -((imgLength - responsiveLength) * imgWidth);
} else if ($(window).width() <= 700) {
responsiveLength = 1;
maxMargin = -((imgLength - responsiveLength) * imgWidth);
} else {
responsiveLength = 3;
maxMargin = -((imgLength - responsiveLength) * imgWidth);
}
});
//Transition animation on click
$('.portbutton').click(function(){
//Get the direction
var dir = $(this).data('dir');
if (dir === 'next' && currentMargin != maxMargin) {
currentMargin -= imgWidth;
imgWrapper.animate({marginLeft: currentMargin},300);
} else if (dir === 'next' && currentMargin === maxMargin){
currentMargin = minMargin;
imgWrapper.animate({marginLeft: currentMargin},300);
} else if (dir === 'prev' && currentMargin != minMargin){
currentMargin += imgWidth;
imgWrapper.animate({marginLeft: currentMargin},300);
} else {
currentMargin = maxMargin;
imgWrapper.animate({marginLeft: currentMargin},300);
}
});
});
Короче! == лучше. Если вы хотите улучшить свой код, * рефакторинг * - это то, что вы хотите. –