Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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
Javascript 带HTML5横幅内容的引导旋转木马-如何暂停动画,直到用户观看该幻灯片?_Javascript_Html_Twitter Bootstrap_Banner_Tween - Fatal编程技术网

Javascript 带HTML5横幅内容的引导旋转木马-如何暂停动画,直到用户观看该幻灯片?

Javascript 带HTML5横幅内容的引导旋转木马-如何暂停动画,直到用户观看该幻灯片?,javascript,html,twitter-bootstrap,banner,tween,Javascript,Html,Twitter Bootstrap,Banner,Tween,我正在创建一个展示HTML5横幅的数字组合。我正在建立一个基础,并利用引导旋转木马为我的用户翻转通过不同的HTML5横幅创意。我已经使用iframe在旋转木马中显示这些横幅,它可以工作,下面是我的代码: <div id="carousel" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carouselvideo"

我正在创建一个展示HTML5横幅的数字组合。我正在建立一个基础,并利用引导旋转木马为我的用户翻转通过不同的HTML5横幅创意。我已经使用iframe在旋转木马中显示这些横幅,它可以工作,下面是我的代码:

<div id="carousel" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
    <li data-target="#carouselvideo" data-slide-to="0" class="active"></li>
    <li data-target="#carouselvideo" data-slide-to="1"></li>
    <li data-target="#carouselvideo" data-slide-to="2"></li>
</ol>
<div class="carousel-inner" role="listbox">
    <div class="item active">
        <iframe src="/digital-portfolio/banners/1/300x600" width="300" height="600" frameborder="0"></iframe>
    </div>
    <div class="item">
        <iframe src="/digital-portfolio/banners/2/300x600" width="300" height="600" frameborder="0"></iframe>
    </div>
    <div class="item">
        <iframe src="/digital-portfolio/banners/3/300x600" width="300" height="600" frameborder="0"></iframe>
    </div>
</div>
    <a class="left carousel-control" href="#carousel" role="button" data-slide="prev">
        <span class="icon-prev" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="right carousel-control" href="#carousel" role="button" data-slide="next">
        <span class="icon-next" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div>
是否有一种方法可以初始化动画以在用户在该幻灯片上时启动,或通过单击旋转木马控件触发动画

以下是滑块外观的图像:

还不完全清楚NanoTween代码在哪里运行。我假设它是在iframe中运行的。首先,您需要知道特定幻灯片何时处于活动状态。这可以通过挂接父页面中的旋转木马事件来实现。有两个事件,slide.bs.carousel在转换到新幻灯片时触发,slide.bs.carousel在新幻灯片激活时触发

jQuery(function($) {
    $('.carousel').on('slide.bs.carousel', function (e) {
        // stop any active slides
        $('iframe[src*="play"]',this).each(function() {
           $(this).attr('src',$(this).attr('src').split('#')[0]+"#stop");
        });
        $('iframe',e.relatedTarget).each(function() {
           $(this).attr('src',$(this).attr('src').split('#')[0]+"#play");
        });
    });

});
一旦知道幻灯片处于活动状态,就可以通过在url末尾添加哈希来通知iframe。在每个iframe中,当散列更改时,可以启动或停止动画:

function init() {

    /* remove this
    setTimeout(function() {
        startAnimation();
    }, 100);
    */

    window.onhashchange = function(){ 
        switch(location.hash.slice(1)) {
           case 'play':
              startAnimation();
              break;
           case 'stop':
              stopAnimation();
              break;
        }
    };

    window.onhashchange();
}
最后,在最初处于活动状态的幻灯片上设置哈希

<div class="item active">
    <iframe src="/digital-portfolio/banners/1/300x600#play" width="300" height="600" frameborder="0"></iframe>
</div>

还不完全清楚NanoTween代码的运行位置。我假设它是在iframe中运行的。首先,您需要知道特定幻灯片何时处于活动状态。这可以通过挂接父页面中的旋转木马事件来实现。有两个事件,slide.bs.carousel在转换到新幻灯片时触发,slide.bs.carousel在新幻灯片激活时触发

jQuery(function($) {
    $('.carousel').on('slide.bs.carousel', function (e) {
        // stop any active slides
        $('iframe[src*="play"]',this).each(function() {
           $(this).attr('src',$(this).attr('src').split('#')[0]+"#stop");
        });
        $('iframe',e.relatedTarget).each(function() {
           $(this).attr('src',$(this).attr('src').split('#')[0]+"#play");
        });
    });

});
一旦知道幻灯片处于活动状态,就可以通过在url末尾添加哈希来通知iframe。在每个iframe中,当散列更改时,可以启动或停止动画:

function init() {

    /* remove this
    setTimeout(function() {
        startAnimation();
    }, 100);
    */

    window.onhashchange = function(){ 
        switch(location.hash.slice(1)) {
           case 'play':
              startAnimation();
              break;
           case 'stop':
              stopAnimation();
              break;
        }
    };

    window.onhashchange();
}
最后,在最初处于活动状态的幻灯片上设置哈希

<div class="item active">
    <iframe src="/digital-portfolio/banners/1/300x600#play" width="300" height="600" frameborder="0"></iframe>
</div>