javascript - 在包装器+按钮导航中旋转子元素

标签 javascript jquery html rotation

@j08691 回答了问题 How to continuously rotate children in a jQuery animation? 有一个很好的例子。 但是,我需要扩展他的示例,但看不到如何动态地执行此操作。 这是我所拥有的一个小图形:

enter image description here

灰色框是我的横幅组,其中包含褪色的 4 个横幅项目。 绿色框是我的按钮 1 到 4。 单击按钮 1 应显示横幅项目 1 并隐藏所有其他项目。然后轮换过程应继续横幅项目 2。如果我点击按钮 4,它应该显示横幅项目 4。

jsfiddle:http://jsfiddle.net/wxvTp/

html:

<div class="col3 bannergroup">
    <div class="banneritem">
        <h1>Lorem Ipsum 1</h1>
        <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
        <a href="#" title="Jetzt unverbindliches Angebot anfordern" class="btn orange">Wir freuen uns auf Ihr Projekt.</a>
    </div>
    <div class="banneritem">
        <h1>Lorem Ipsum 2</h1>
        <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
        <a href="#" title="Jetzt unverbindliches Angebot anfordern" class="btn orange">Wir freuen uns auf Ihr Projekt.</a>
    </div>
    <div class="banneritem">
        <h1>Lorem Ipsum 3</h1>
        <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
        <a href="#" title="Jetzt unverbindliches Angebot anfordern" class="btn orange">Wir freuen uns auf Ihr Projekt.</a>
    </div>
    <div class="banneritem">
        <h1>Lorem Ipsum 4</h1>
        <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
        <a href="#" title="Jetzt unverbindliches Angebot anfordern" class="btn orange">Wir freuen uns auf Ihr Projekt.</a>
    </div>                              
    <div class="slider-control-nav desktop"> <!-- buttons are here -->
        <a class="button1" href="#">
            <img src="images/icon-slider-control-cs.png" alt="Grafikdesign" />
        </a>
        <a href="#" class="button2">
            <img src="images/icon-slider-control-gd.png" alt="Content Strategy" />
        </a>
        <a class="button3" href="#">
            <img src="images/icon-slider-control-wd.png" alt="Grafikdesign" />
        </a>
        <a class="button4" href="#">
            <img src="images/icon-slider-control-cs.png" alt="Content Strategy" />
        </a>
    </div>
</div>

编辑:这是我尝试过的,但是,a)不起作用,b)必须对所有 4 个按钮进行操作。

   $( ".button4" ).click(function() {
    $('div.bannergroup').each(function () {
        $('div.banneritem', this).not(':nth-child(4)').hide();
        var thisDiv = this;
        setInterval(function () {
            var idx = $('div.banneritem', thisDiv).index($('div.banneritem', thisDiv).filter(':visible'));
            $('div.banneritem:eq(' + idx + ')', thisDiv).fadeOut(0, function () {
                idx++;
                if (idx == ($('div.text', thisDiv).length)) idx = 0;
                $('div.banneritem', thisDiv).eq(idx).fadeIn(600);
            });
        }, 6000);
    });
});

最佳答案

看看这个:http://jsfiddle.net/Palpatim/TfK4J/6/

关于之前代码的一些注释:

  • 使用 CSS 而不是 jquery 设置 .banneritem 的初始状态。浏览器的工作量减少,并且当 jquery 计算出应该隐藏和显示的内容时,不太可能获得内容的“闪现”。
  • 您在 setInterval 调用中做了很多工作,但实际上您只想显示一个新横幅。尽可能重构代码以减少间隔内完成的工作

祝你好运。

[编辑:将 fiddle URL 更正为 banneritem:first-child 上具有 display:block 的 URL]

关于javascript - 在包装器+按钮导航中旋转子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661245/

相关文章:

javascript - 从响应模式(+/-)更改为标准模式(无+/-)时,第一列消失

javascript - 如何打印div中所选项目的文本

javascript - 如何检查父元素中的点击,而不是子元素中的点击?

php - 在 IE 8 上输入类型密码文本

javascript - 如何连续播放视频而没有间隙

html - 从中心的 CSS 过渡宽度

javascript - HTML - 从具有透明度的 PNG 图像中实现具有自定义可点击形状的按钮

javascript - 如何在 jquery 中将两个 DOM 元素组合为一个

javascript - 如何在收到新的 Google 表单提交后忽略向具有值的行发送电子邮件?

javascript - AJAX提交表单和时间无需刷新