【问题标题】:Slide two divs at the same time using Foundation's Orbit content slider使用 Foundation 的 Orbit 内容滑块同时滑动两个 div
【发布时间】:2013-03-10 04:29:31
【问题描述】:

单击箭头时,我需要同时在投资组合页面上为两个 div 设置动画/滑动(根据附加图像,笔记本电脑和手机上的屏幕截图)。我可以适度理解/更改 JS 插件,并且非常精通 HTML/CSS。有什么推荐的插件或方法可以做到这一点而无需编写特定的 JS 代码?

P.S 我正在使用 Zurb 的 Foundation 框架,它内置了“Orbit”滑块插件,但不确定它的可定制性足以实现这一点

【问题讨论】:

  • 可以做到,但我们需要查看您的代码,否则我们完全一头雾水。 旁注:您应该使用该信息编辑您的问题,而不是对其发表评论。
  • F4 目前不支持此功能。您不能以编程方式更改幻灯片,而不是大量修改幻灯片。他们甚至删除了 F3 中的回调函数afterSlideChange,这可能会帮助您破解它。

标签: jquery css slider zurb-foundation


【解决方案1】:

jQuery 中的动画函数是异步的,所以你可以同时调用元素的动画:

var deltaW = window.innerWidth;

$('#myDiv1').animate({left : deltaW});
$('#myDiv2').animate({left : deltaW});

你也可以在动画完成的时候触发一个函数:

$('#myDiv1').animate({left : deltaW});
$('#myDiv2').animate({left : deltaW }, function() { /*.. do something ..*/});

编辑:工作示例(请注意 css 规则的位置属性):
http://jsfiddle.net/2gCKY/1/

【讨论】:

  • 这对使用 Foundation 的 Orbit 插件没有帮助。
  • @Jack 抱歉,我必须 +1。进出 Foundation 的 Orbit 插件,没有比这更容易的了。
  • @VoidKing 我认为他的问题是“我如何同时移动到两个轨道滑块的下一张幻灯片?”这根本没有帮助。
  • @Jack 这个问题并没有暗示这一点,但是我又不熟悉 Orbit。如果你说的是真的,你是对的,这根本没有帮助。
  • @VoidKing 是的,最好的解决方案是使用 Orbit 滑块来完成此操作,但截至目前我无法弄清楚如何做到这一点,所以也许一些自定义 JS 是要走的路
【解决方案2】:

没有开箱即用的方法,但您可以随意破解。假设您有以下轨道:

<div class="row">
    <div class="large-8 columns">
        <ul data-orbit id="slider1">
            <li>
            <img src="http://placehold.it/800x350&text=slide 1" />                
            </li>
            <li>
            <img src="http://placehold.it/800x350&text=slide 2" />                
            </li>
            <li>
            <img src="http://placehold.it/800x350&text=slide 3" />                
            </li>
        </ul>
    </div>
</div>
<div class="row">
    <div class="large-4 columns">
        <ul data-orbit id="slider2">
            <li>
            <img src="http://placehold.it/400x150&text=slide 1" />                
            </li>
            <li>
            <img src="http://placehold.it/400x150&text=slide 2" />                
            </li>
            <li>
            <img src="http://placehold.it/400x150&text=slide 3" />                
            </li>
        </ul>
    </div>
</div>

您可以通过点击导航箭头同步两个Orbits的滑动,前提是两个Orbits具有相同的timer_speed(默认情况下它们会):

<script type="text/javascript">
    $(document).foundation();
    $(document).ready(function () {
        var fromSlide1 = false;
        var fromSlide2 = false;
        var slider1 = $("#slider1");
        var slider2 = $("#slider2");
        var slider1Prev = slider1.parent().find(".orbit-prev");
        var slider2Prev = slider2.parent().find(".orbit-prev");
        var slider1Next = slider1.parent().find(".orbit-next");
        var slider2Next = slider2.parent().find(".orbit-next");

        slider1Prev.click(function () {
            if (fromSlide1) return;
            fromSlide1 = true;              
            slider2Prev.click();
            fromSlide1 = false;
        });
        slider2Prev.click(function () {
            if (fromSlide2) return;
            fromSlide2 = true;
            slider1Prev.click();
            fromSlide2 = false;
        });
        slider1Next.click(function () {
            if (fromSlide1) return;
            fromSlide1 = true;              
            slider2Next.click();
            fromSlide1 = false;
        });
        slider2Next.click(function () {
            if (fromSlide2) return;
            fromSlide2 = true;
            slider1Next.click();
            fromSlide2 = false;
        });
    });
</script>

【讨论】:

  • 在 Foundation 4 中完美运行。甚至可以在没有冲突包装器的 WordPress 中运行。谢谢!在 Foundation 3 中不起作用...
  • 这是因为 F3 为 Orbit 定义了不同的类。例如,在 F3 中,下一个按钮有一个类 next (orbit.next),而在 F4 中它是 orbit-next
  • 当我在 F3 中尝试此操作时,我在第 3 行收到“没有方法 'foundation'”错误。我将您的脚本添加到页脚和 Foundation.min.js 到页眉。我尝试在基础之前将您的脚本移动到标题,但在 jquery 本身之后但我得到了同样的错误。
  • Foundation 在 V3 中不是这样初始化的。我认为您应该发布另一个问题,因为它与此不同。其他人也可以查看它并提供 cmets/answers。如果我们在这里讨论您的新问题 - 通过 cmets,其他人将很难看到它。
  • 我刚刚在 [这里] (stackoverflow.com/q/15980783/1469799) 发布了这个问题。希望这个问题的答案能帮助我完成我正在处理的另一个与 Foundation 相关的任务,即从 F3 到 F4 重新创建垂直导航。在 F4 中没有这就是为什么我不只是通过在这个项目上转移到 F4 来解决双轨道问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多