Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使JQuery滑块仅在页面重新加载时更改幻灯片_Jquery_Slider - Fatal编程技术网

如何使JQuery滑块仅在页面重新加载时更改幻灯片

如何使JQuery滑块仅在页面重新加载时更改幻灯片,jquery,slider,Jquery,Slider,我在为客户工作的项目中有一个无序列表滑块。最初,客户机只需要一个普通的、旧的、自动循环的淡入淡出滑块。没问题。现在,客户机回到我身边,询问我是否可以完成,这样,如果用户重新加载或刷新页面,滑块只会循环到下一张幻灯片。原始代码如下: HTML: 原始淡入滑块的JQuery: $(function() { $('ul.fader li:not(:first)').hide(); $('ul.fader li').css('position', 'absolute'); $('

我在为客户工作的项目中有一个无序列表滑块。最初,客户机只需要一个普通的、旧的、自动循环的淡入淡出滑块。没问题。现在,客户机回到我身边,询问我是否可以完成,这样,如果用户重新加载或刷新页面,滑块只会循环到下一张幻灯片。原始代码如下:

HTML:

原始淡入滑块的JQuery:

$(function() {
    $('ul.fader li:not(:first)').hide();
    $('ul.fader li').css('position', 'absolute');
    $('ul.fader li').css('top', '0px');
    $('ul.fader li').css('left', '0px');

    var pause = false;

    function fadeNext() {
        $('ul.fader li').first().fadeOut().appendTo($('ul.fader'));
        $('ul.fader li').first().fadeIn();
    }

    $('ul.fader').hover(function() {
        pause = true;
    },function() {
        pause = false;
    });

    function doRotate() {
        if(!pause) {
          fadeNext();
        }    
    }

    var rotate = setInterval(doRotate, 5000);

});
你能给我的任何帮助都会很好。提前谢谢


这就是它目前的工作方式:

我想您需要使用sessionStorage

因此,如果您在sessionStorage中存储一个变量,该变量指示页面已被查看的次数。Onload您可以检查此变量,然后根据变量值旋转到相应的视图


还应该提到,如果您需要支持非html5浏览器,那么您可能必须求助于会话cookie。这将是非常相似的,但存储将是不同的。

由于您必须更改页面加载上的滑块,这显然意味着您将需要有数据来告诉您上次页面加载中显示的滑块。 这可以通过三种方式实现

1) 以散列方式添加到URL中-不建议这样做,因为用户可以尝试在不使用散列的情况下重新加载

2) 使用cookie保存数据

3) 使用localStorage保存数据-我使用了这个

演示-

JS


你能更新fiddle中的代码吗?我刚把fiddle添加到postThank中,我在答案中添加了一些文字
div.singleColumn div.leftColumn ul.fader {
    width: 100%;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    position: relative;
    height: 340px;
}

div.singleColumn div.leftColumn ul.fader li {
    padding: 0px !important;
    background: none !important;
    font-size: 10px;
}
$(function() {
    $('ul.fader li:not(:first)').hide();
    $('ul.fader li').css('position', 'absolute');
    $('ul.fader li').css('top', '0px');
    $('ul.fader li').css('left', '0px');

    var pause = false;

    function fadeNext() {
        $('ul.fader li').first().fadeOut().appendTo($('ul.fader'));
        $('ul.fader li').first().fadeIn();
    }

    $('ul.fader').hover(function() {
        pause = true;
    },function() {
        pause = false;
    });

    function doRotate() {
        if(!pause) {
          fadeNext();
        }    
    }

    var rotate = setInterval(doRotate, 5000);

});
$(function() {
    $('ul.fader li').hide();
    $('ul.fader li').css('position', 'absolute');
    $('ul.fader li').css('top', '0px');
    $('ul.fader li').css('left', '0px');

    var max = $('ul.fader li').length;

    function showSlider() {

        if(localStorage.slider) {
            $('.fader').find('li:nth('+localStorage.slider+')').fadeIn();
            localStorage.slider = parseInt(localStorage.slider,10) + 1;
            if(localStorage.slider >= max) localStorage.slider=0;
        }else{
            $('.fader').find('li:nth(0)').fadeIn();
            localStorage.slider=1;
        }
    }

    showSlider();

});