javascript - jQuery slider 在第一次加载幻灯片时不显示效果

标签 javascript jquery html css

我是 jQuery 的新手,我有一个问题,我相信对于你们中的一些人来说这将是小菜一碟。 :)

我创建了自定义图像 slider ,除了一件事外,它几乎可以按我希望的方式工作。应该在每个幻灯片转换上出现的效果只有在通过所有幻灯片后才会显示。在此之前,它们会立即显示 - 完全没有效果。

这是 JSFiddle链接和代码片段如下。

        $(document).ready(function () {

        var slideHovered = null;
        var slideDuration = 7000;
        var slideEffectDuration = 2500;

        //Initial hiding of inactive slides - is it actually necessary?
        $('.slide:not(.active)').each(function () {
            $(this).css({
                "visibility": "hidden"
            });
        });

        //Check if mouse is hovering over slider
        setInterval(function () {
            slideHovered = $('.leftContentWrapper').is(":hover");
        }, 500);

        //Function to start slideshow
        function startSlides(slideDirection) {
            var slideNumber = $('.slide.active').data('slide');
            var highestSlideNumber = null;

            //Function to find highest slide number
            $('.slide').each(function () {
                var value = parseFloat($(this).attr('data-slide'));
                highestSlideNumber = (value > highestSlideNumber) ? value : highestSlideNumber;
            });

            slideNumber = slideDirection == 'next' ? slideNumber = slideNumber + 1 : slideNumber = slideNumber - 1;
            slideNumber = slideNumber <= 0 ? slideNumber = highestSlideNumber : slideNumber = slideNumber;
            slideNumber = slideNumber > highestSlideNumber ? slideNumber = 1 : slideNumber = slideNumber;

            $('.slide.active').removeClass('active').hide();
            $('[data-slide="' + slideNumber + '"]').addClass('active').fadeIn(slideEffectDuration, function () {});
            $('.slide.active').css({
                'visibility': 'visible'
            });
        }

        //Function to change slide every x seconds if there is no hovering over
        setInterval(function () {
            if (slideHovered === false) {
                startSlides('next');
            } else {
                return false;
            }
        }, slideDuration);

        $('.control').click(function () {
            var slideDirection = $(this).attr('id');
            startSlides(slideDirection);
        });
    });

附言任何额外的代码建议或建议都将受到赞赏。

最佳答案

你的初始 hide 是问题所在,将其更改为:

            $(this).css({
                "display": "none"
            });

关于javascript - jQuery slider 在第一次加载幻灯片时不显示效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071037/

相关文章:

html - <th> 标记的位置无效

javascript - 如何在开放层 3 中传递纬度和经度?

jquery - 如何仅选择窗口中可见的元素

javascript - firebase.database 不是函数

javascript - jquery从多个中获取当前选定的值

javascript - 快速单击复选框时出错

Javascript InnerHTML 文本不改变

Jquery自定义警报框

asp.net - Javascript 拒绝调用 ActiveX 方法,同意调用另一个方法

JavaScript find(),传递{}和不带{}有什么区别?