选择两个项目时创建效果?

时间:2015-09-12 19:04:07

标签: javascript jquery html css jquery-cycle2

我正在尝试为自己创建一个绘图工具,我在其中选择一个类别,一个时间限制,然后在单击开始按钮后,随机播放的幻灯片将在我选择的时间内播放每个图像。

现在我正在尝试设置jQuery,以便隐藏包含幻灯片的div直到我按下start。然后,出现幻灯片(以及一些控件,如暂停按钮)。我的问题是我不知道如何为此设置jQuery。我需要进行设置,以便在按下开始后播放幻灯片,但根据我选择的单选按钮播放一段时间。我希望这是有道理的。

以下是幻灯片页面的html:

<table style="width:50px height:200px">
    <ul class="controls">
        <li><img class="prev" src="skip-backward.png" /></li>
        <li><img class="pause" src="pause.png"></li>
        <li><img class="next" src="skip-forward.png"></li>
        <li><img class="stop" src="stop.png"></li>
    </ul>
</table>
<!--Pics-->
    <div id="pics">
        <img class="allppl" src="___and_one_for_the_girlies_by_Sadiel47.jpg"/>
        <img class="allppl" src="___Sheer_Stock_02____by_Symplig0th.png"/>
        <img class="allppl" src="___Sheer_Stock_03____by_Symplig0th.png"/>
        <img class="allppl" src="___Sheer_Stock_04____by_Symplig0th.png"/>
        <img class="allppl" src="___Sheer_Stock_06____by_Symplig0th.png"/>
        <img class="allppl" src="___Sheer_Stock_09____by_Symplig0th.png"/>
        <img class="allppl" src="a0e54_large.jpg"/>
        <img class="allppl" src="007-10-.jpg"/>
        <img class="allppl" src="007-11-.jpg"/>
        <img class="allppl" src="007-12-.jpg"/>
        <img class="allppl" src="007-7-.jpg"/>
        <img class="allppl" src="007-8-.jpg"/>
        <img class="allppl" src="007-9-.jpg"/>
        <img class="allppl" src="male_fighter_10_by_bobbistock.jpg"/>
        <img class="allppl" src="male_fighter_3_by_bobbistock.jpg"/>
        <img class="allppl" src="male_fighter_9_by_bobbistock.jpg"/>
        <img class="allppl" src="relaxing.jpg"/>
        <img class="allppl" src="Rendan_Touch_by_cugot12.jpg"/>
    </div>    
<!--Time Lengths-->    
<table class="times" style="width:90%">
    <tbody>
        <tr class="nums">
            <td>30 secs</td>
            <td>1 min</td>
            <td>90 secs</td>
            <td>2 mins</td>
            <td>5 mins</td>
        </tr>
        <tr>
            <td><input type="radio" name="ppl" value="allppl30" id="30s" /></td>
            <td><input type="radio" name="ppl" value="allppl1" id="1min" /></td>
            <td><input type="radio" name="ppl" value="allppl90" id="90s" /></td>
            <td><input type="radio" name="ppl" value="allppl2" id="2min" /></td>
            <td><input type="radio" name="ppl" value="allppl5" id="5min" /></td>
        </tr>
    </tbody>
</table>
<!--Start & Home Buttons-->    
<span class="lbuttons" id="start"><button type="button">Start</button></span>
<span class="lbuttons" id="home"><button type="button">Home</button></span>

这是jQuery。我正在使用Cycle 2插件进行幻灯片放映。我将过去的尝试放在评论中,这样我就可以更好地跟踪哪些有效,哪些无效。

jQuery(document).ready(function () {
    'use strict';
    $('#pics').hide();
    $('button#start').click(function () {
        $('#pics').show(function () {
            jQuery(this).cycle({
                fx: 'fade',
                next: '#pics',
                speed: 30000,
                random: 1
            });
        });
    });

    /*
            Basic Click- WORKS (Pics appear when start is clicked and cycle isn't present)
    $('#start').click(function () {
        $('#pics').show();
    });
            First Attempt- DOESN'T WORK
    if ($('button#start').is(':clicked')) {
        $('#pics').show();
    }
    if ($('input#30s').is(':checked')) {
        $('.times').hide();
        jQuery('#pics').cycle({
            fx: 'fade',
            next: '#pics',
            speed: 30000,
            random: 1
        });
    } */
    if ($('div#pics').width() >= 1000 && $('div#pics').height() >= 1100) {
        $('div#pics').css('max-width', '90%');
    }
});

如果还不是很明显,那么我只是输入不同的东西来看看会发生什么。

编辑:我想出了部分问题:我需要在幻灯片的命令中使用“超时”而不是“速度”。速度会影响过渡速度,而不会影响幻灯片在屏幕上显示的时间。

当我使用数字输入进行超时时,计时器工作(例如输入“timeout:30000”会导致图像在屏幕上停留30秒),但我无法使用NibbCNoble建议的变量。

这是新代码:

$(document).ready(function () {
    'use strict';
    $('#pics').hide();
    $('.play').hide();
    $('#start').click(function () {
        var speedval = $("input[name=ppl]:checked").val();
        $('#pics').show(function () {
            $(this).cycle({
                fx: 'fade',
                next: '#pics',
                timeout: speedval,
                random: 1
            });
        });
    });
    $('.pause').click(function () {
        $(this).hide();
        $('.play').show();
    });
    $('.play').click(function () {
        $(this).hide();
        $('.pause').show();
    });
    /*        Basic Click- WORKS
    $('#start').click(function () {
        $('#pics').show();
    });
            First Attempt- DOESN'T WORK
    if ($('button#start').is(':clicked')) {
        $('#pics').show();
    }
    if ($('input#30s').is(':checked')) {
        $('.times').hide();
        jQuery('#pics').cycle({
            fx: 'fade',
            next: '#pics',
            speed: 30000,
            random: 1
        });
    } */
    if ($('div#pics').width() >= 1000 && $('div#pics').height() >= 1100) {
        $('div#pics').css('max-width', '90%');
    }
});

1 个答案:

答案 0 :(得分:0)

我不确定你的幻灯片是如何设置的,但我可以让你朝着正确的方向开启的部分是单选按钮。如果要使用这些单选按钮将值输入到每张幻灯片上花费的时间,则需要将值设置为可输入的输入,例如多秒。

Here is a fiddle that I started with the radio buttons value getting selected

我改变了一点的HTML部分

   <td><input type="radio" name="ppl" value="30" id="30s" /></td>
        <td><input type="radio" name="ppl" value="60" id="1min" /></td>
        <td><input type="radio" name="ppl" value="90" id="90s" /></td>
        <td><input type="radio" name="ppl" value="120" id="2min" /></td>
        <td><input type="radio" name="ppl" value="300" id="5min" /></td>

和javascript部分:

jQuery(document).ready(function () {
'use strict';
$('#pics').hide();
$('button#start').click(function () {
    var speedval = $("input[name=ppl]:checked").val();
    $('#pics').show(function () {
        jQuery(this).cycle({
            fx: 'fade',
            next: '#pics',
            speed: speedval,
            random: 1
        });
    });
});

/*
        Basic Click- WORKS (Pics appear when start is clicked and cycle isn't present)
$('#start').click(function () {
    $('#pics').show();
});
        First Attempt- DOESN'T WORK
if ($('button#start').is(':clicked')) {
    $('#pics').show();
}
if ($('input#30s').is(':checked')) {
    $('.times').hide();
    jQuery('#pics').cycle({
        fx: 'fade',
        next: '#pics',
        speed: 30000,
        random: 1
    });
} */
if ($('div#pics').width() >= 1000 && $('div#pics').height() >= 1100) {
    $('div#pics').css('max-width', '90%');
}

});