首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slider Show无法正常工作-似乎找不到问题所在

Slider Show无法正常工作-似乎找不到问题所在
EN

Stack Overflow用户
提问于 2019-09-19 11:34:43
回答 1查看 36关注 0票数 1

我想在容器中创建一个由一些div组成的幻灯片。由于某种原因,滑块把一切都搞乱了。会非常感谢任何人的帮助。

代码语言:javascript
复制
$('[class^=show]').fadeOut(0)

var curClass = 3
var className = 'show-'
var fadeTime = 1000
var showTime = 3000
var cycleTime = (fadeTime * 2 + showTime) * (curClass + 1);
setInterval(function() {
  for (var i = 0; i <= curClass; i++) {
    cls = '.' + className + i;
    // $(cls).fadeIn(fadeTime).delay(showTime).fadeOut(fadeTime);
    $(cls).fadeIn(fadeTime, function() {
      sleep(showTime);
      $(cls).fadeOut(fadeTime);
    });
  }
}, cycleTime);

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds) {
      break;
    }
  }
}
代码语言:javascript
复制
.container div {
  height: 50px;
  width: 50px;
  background: red;
  color: white;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='container'>
  <div class="show-0">Hey 0</div>
  <div class="show-1">Hey 1</div>
  <div class="show-2">Hey 2</div>
  <div class="show-3">Hey 3</div>
</div>

滑块应该按顺序显示一类“show -X”,淡入淡出得很好。

EN

回答 1

Stack Overflow用户

发布于 2019-09-19 13:05:36

请参阅以下内容:

代码语言:javascript
复制
 $(document).ready(function () {

            $('[class*=show-]').fadeOut(0);

            var curClass = 3
            var className = 'show-'
            var fadeTime = 500
            var showTime = 1000
            var cycleTime = [(fadeTime * 2 + showTime) * (curClass + 1)] / 4;
            var i = 0;
            console.log(cycleTime);

            setInterval(function () {
                $('.' + className + i).fadeIn(fadeTime, function () {
                    //sleep(showTime);
                    try {
                        if (i == 0) { $('.' + className + curClass).fadeOut(fadeTime); } else { $('.' + className + (i-1)).fadeOut(fadeTime); }
                        
                    } catch (e) { }
                });
                if (i == 3) { i = 0; } else { i++; }

            }, showTime);
        });

        function sleep(milliseconds) {
            var start = new Date().getTime();
            for (var i = 0; i < 1e7; i++) {
                if ((new Date().getTime() - start) > milliseconds) {
                    break;
                }
            }
        }
代码语言:javascript
复制
.container div {
            height: 50px;
            width: 50px;
            background: red;
            color: white;
        }
代码语言:javascript
复制
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='container'>
        <div class="show-0">Hey 0</div>
        <div class="show-1">Hey 1</div>
        <div class="show-2">Hey 2</div>
        <div class="show-3">Hey 3</div>
    </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58003366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档