gpt4 book ai didi

javascript - 使 javascript/jquery 代码更短?

转载 作者:行者123 更新时间:2023-11-28 18:36:48 25 4
gpt4 key购买 nike

嗯,我对 jQuery 和 javascript 很陌生,我已经为图像 slider 编写了“一些”代码,但它是巨大的。我相信它可以更短,但我不知道如何做。有人可以告诉我如何做以便我可以从中学习吗?提前致谢:D

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);
}

});

});

最佳答案

您可以将某些功能用于:

function animate(currentMargin){
imgWrapper.animate({marginLeft: currentMargin},300);
}

function getMaxMargin(imgLength,responsiveLength,imgWidth){
maxMargin = -((imgLength - responsiveLength) * imgWidth);
return maxMargin
}

并且也许避免一直创建值responsiveLength,如果它只是您在使用之前始终设置的整数,那么只需将整数转入,您将拥有更多的内存空间。

关于javascript - 使 javascript/jquery 代码更短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36919287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com