Javascript jQuery滑块故障

Javascript jQuery滑块故障,javascript,jquery,css,Javascript,Jquery,Css,嗨,我正在创建一个简单的jQuery幻灯片。幻灯片的要求很简单,只需幻灯片不断向左翻转即可。在线显示的大部分教程都非常高级和新奇。但后来我遇到了一个几乎就是我想要的 但问题是,当图像滑到最后时,它会向后滑到我的第一张图像。是否有任何方法可以更改代码,以便在将图像滑到末尾时,幻灯片将继续返回到第一个图像,而不是通过向后滑动。请将您的javascript更改为: 更新:您希望滑块到达滑块后滑回原始位置。这是通过功能slideLeft在到达最后一张幻灯片时实现的 $(document).ready(

嗨,我正在创建一个简单的jQuery幻灯片。幻灯片的要求很简单,只需幻灯片不断向左翻转即可。在线显示的大部分教程都非常高级和新奇。但后来我遇到了一个几乎就是我想要的


但问题是,当图像滑到最后时,它会向后滑到我的第一张图像。是否有任何方法可以更改代码,以便在将图像滑到末尾时,幻灯片将继续返回到第一个图像,而不是通过向后滑动。

请将您的javascript更改为:

更新:您希望滑块到达滑块后滑回原始位置。这是通过功能
slideLeft
在到达最后一张幻灯片时实现的

$(document).ready(function() {
    var currentPosition = 0;
    var slideWidth = 500;
    var slides = $('.slide');
    var numberOfSlides = slides.length;
    var slideShowInterval;
    var speed = 3000;
    var lastSlideReached = false;

    slides.wrapAll('<div id="slidesHolder"></div>');
    slides.css({ 'float' : 'left' });
    $('#slidesHolder').css('width', slideWidth * numberOfSlides);
    slideShowInterval = setInterval(changePosition, speed);

    function changePosition() {
        if( ! lastSlideReached ) {
            if(currentPosition == (numberOfSlides-1)) {
                lastSlideReached = true;

                            clearInterval( slideShowInterval );
                slideLeft();
            slideShowInterval = setInterval(changePosition, speed);
            } else {
                currentPosition++;
            }
        } else {
            if( currentPosition == 0 ) {
                lastSlideReached = false;
            } else {
                currentPosition--;
            }
        }

        moveSlide();
    }

    function moveSlide() {
         $('#slidesHolder').animate(
            {'marginLeft' : slideWidth*(-currentPosition)}
         );
    }

function slideLeft() {
    $('#slidesHolder').animate({'marginLeft' : 0});
    currentPosition = 0;
    lastSlideReached = false;
}
});
$(文档).ready(函数(){
var currentPosition=0;
var slideWidth=500;
变量幻灯片=$('.slide');
var numberOfSlides=slides.length;
var幻灯片放映间隔;
var速度=3000;
var lastSlideRached=false;
幻灯片。wrapAll(“”);
css({'float':'left'});
$(“#幻灯片文件夹”).css('width',slideWidth*numberOfSlides);
slideShowInterval=设置间隔(改变位置、速度);
函数changePosition(){
如果(!LastSlideRached){
如果(当前位置==(幻灯片编号-1)){
LastSlideRached=true;
clearInterval(幻灯片放映间隔);
slideLeft();
slideShowInterval=设置间隔(改变位置、速度);
}否则{
currentPosition++;
}
}否则{
如果(currentPosition==0){
LastSlideRached=false;
}否则{
当前位置--;
}
}
moveSlide();
}
函数moveSlide(){
$(“#幻灯片放映器”)。设置动画(
{'marginLeft':slideWidth*(-currentPosition)}
);
}
函数slideLeft(){
$(“#幻灯片播放器”)。设置动画({'marginLeft':0});
currentPosition=0;
LastSlideRached=false;
}
});
我添加了一个变量
var lassliderached=false
并对函数进行了一些更改
changePosition


希望有帮助。

请将您的javascript更改为:

更新:您希望滑块到达滑块后滑回原始位置。这是通过功能
slideLeft
在到达最后一张幻灯片时实现的

$(document).ready(function() {
    var currentPosition = 0;
    var slideWidth = 500;
    var slides = $('.slide');
    var numberOfSlides = slides.length;
    var slideShowInterval;
    var speed = 3000;
    var lastSlideReached = false;

    slides.wrapAll('<div id="slidesHolder"></div>');
    slides.css({ 'float' : 'left' });
    $('#slidesHolder').css('width', slideWidth * numberOfSlides);
    slideShowInterval = setInterval(changePosition, speed);

    function changePosition() {
        if( ! lastSlideReached ) {
            if(currentPosition == (numberOfSlides-1)) {
                lastSlideReached = true;

                            clearInterval( slideShowInterval );
                slideLeft();
            slideShowInterval = setInterval(changePosition, speed);
            } else {
                currentPosition++;
            }
        } else {
            if( currentPosition == 0 ) {
                lastSlideReached = false;
            } else {
                currentPosition--;
            }
        }

        moveSlide();
    }

    function moveSlide() {
         $('#slidesHolder').animate(
            {'marginLeft' : slideWidth*(-currentPosition)}
         );
    }

function slideLeft() {
    $('#slidesHolder').animate({'marginLeft' : 0});
    currentPosition = 0;
    lastSlideReached = false;
}
});
$(文档).ready(函数(){
var currentPosition=0;
var slideWidth=500;
变量幻灯片=$('.slide');
var numberOfSlides=slides.length;
var幻灯片放映间隔;
var速度=3000;
var lastSlideRached=false;
幻灯片。wrapAll(“”);
css({'float':'left'});
$(“#幻灯片文件夹”).css('width',slideWidth*numberOfSlides);
slideShowInterval=设置间隔(改变位置、速度);
函数changePosition(){
如果(!LastSlideRached){
如果(当前位置==(幻灯片编号-1)){
LastSlideRached=true;
clearInterval(幻灯片放映间隔);
slideLeft();
slideShowInterval=设置间隔(改变位置、速度);
}否则{
currentPosition++;
}
}否则{
如果(currentPosition==0){
LastSlideRached=false;
}否则{
当前位置--;
}
}
moveSlide();
}
函数moveSlide(){
$(“#幻灯片放映器”)。设置动画(
{'marginLeft':slideWidth*(-currentPosition)}
);
}
函数slideLeft(){
$(“#幻灯片播放器”)。设置动画({'marginLeft':0});
currentPosition=0;
LastSlideRached=false;
}
});
我添加了一个变量
var lassliderached=false
并对函数进行了一些更改
changePosition


希望能有所帮助。

如果您需要避免最后一张幻灯片回到第一张幻灯片,然后重新开始,我建议对Pushpesh的答案稍作修改:

$(document).ready(function() {
var currentPosition = 0;
var slideWidth = 500;
var slides = $('.slide');
var numberOfSlides = slides.length;
var slideShowInterval;
var speed = 900;
var lastSlideReached = false;

slides.wrapAll('<div id="slidesHolder"></div>');
slides.css({ 'float' : 'left' });
$('#slidesHolder').css('width', slideWidth * numberOfSlides);
slideShowInterval = setInterval(changePosition, speed);

function changePosition() {
    if( ! lastSlideReached ) {
        if(currentPosition == (numberOfSlides-1)) {
            lastSlideReached = true;
        } else {
            currentPosition++;
        }

        moveSlide();

    } else {                     
        resetSlide()
    }


}

function moveSlide() {
    $('#slidesHolder').animate({'marginLeft' : slideWidth*(-currentPosition)});
}

function resetSlide(){
    currentPosition = 0;
    $('#slidesHolder').css('marginLeft', currentPosition );
    lastSlideReached = false;

}
$(文档).ready(函数(){
var currentPosition=0;
var slideWidth=500;
变量幻灯片=$('.slide');
var numberOfSlides=slides.length;
var幻灯片放映间隔;
无功转速=900;
var lastSlideRached=false;
幻灯片。wrapAll(“”);
css({'float':'left'});
$(“#幻灯片文件夹”).css('width',slideWidth*numberOfSlides);
slideShowInterval=设置间隔(改变位置、速度);
函数changePosition(){
如果(!LastSlideRached){
如果(当前位置==(幻灯片编号-1)){
LastSlideRached=true;
}否则{
currentPosition++;
}
moveSlide();
}否则{
重置幻灯片()
}
}
函数moveSlide(){
$('#SlideShalder')。动画({'marginLeft':slideWidth*(-currentPosition)});
}
函数resetSlide(){
currentPosition=0;
$('#slideshalder').css('marginLeft',currentPosition);
LastSlideRached=false;
}
}));​


干杯

如果您需要避免最后一张幻灯片回到第一张幻灯片,然后重新开始,我建议您对Pushpesh的答案稍作修改:

$(document).ready(function() {
var currentPosition = 0;
var slideWidth = 500;
var slides = $('.slide');
var numberOfSlides = slides.length;
var slideShowInterval;
var speed = 900;
var lastSlideReached = false;

slides.wrapAll('<div id="slidesHolder"></div>');
slides.css({ 'float' : 'left' });
$('#slidesHolder').css('width', slideWidth * numberOfSlides);
slideShowInterval = setInterval(changePosition, speed);

function changePosition() {
    if( ! lastSlideReached ) {
        if(currentPosition == (numberOfSlides-1)) {
            lastSlideReached = true;
        } else {
            currentPosition++;
        }

        moveSlide();

    } else {                     
        resetSlide()
    }


}

function moveSlide() {
    $('#slidesHolder').animate({'marginLeft' : slideWidth*(-currentPosition)});
}

function resetSlide(){
    currentPosition = 0;
    $('#slidesHolder').css('marginLeft', currentPosition );
    lastSlideReached = false;

}
$(文档).ready(函数(){
var currentPosition=0;
var slideWidth=500;
变量幻灯片=$('.slide');
var numberOfSlides=slides.length;
var幻灯片放映间隔;
无功转速=900;
var lastSlideRached=false;
幻灯片。wrapAll(“”);
css({'float':'left'});
$(“#幻灯片文件夹”).css('width',slideWidth*numberOfSlides);
slideShowInterval=设置间隔(改变位置、速度);
函数changePosition(){
如果(!LastSlideRached){
如果(当前位置==(幻灯片编号-1)){
LastSlideRached=true;
}否则{
currentPosition++;
}
moveSlide();
}否则{
重置幻灯片()
}
}
函数moveSlide(){
$('#幻灯片播放器')。设置动画({'margi'