使按钮进入其初始状态

时间:2016-01-02 18:17:36

标签: jquery html less

现在我已经完成了在我的网站中设置视频控件样式的部分,我遇到了一个小问题。

视频部分包含视频列表和视频播放器。只要点击列表中的li元素,视频播放器的来源就会变为点击视频的来源。视频播放器顶部有一个播放按钮,可以从播放到暂停。

我遇到的问题是,每当视频源发生变化时,按钮都不会返回播放状态。

HTML代码(index.php):

<div class="control play">
    <span class="left"></span><span class="right"></span>
</div>

按钮(Less.less)的样式较少:

.control {
    @color: #ffb160;
    @highlight: darken(@color, 10%);
    @duration: 0.4s;
    @sin:  0.866;
    @size: 30px;
    border: @size*0.1 solid @color;
    border-radius: 50%;
    margin: 20px;
    padding: @size*0.25;
    width: @size;
    height: @size;
    font-size: 0;
    white-space: nowrap;
    text-align: center;
    cursor: pointer;

    &, .left, .right, &:before {
        display: inline-block;
        vertical-align: middle;
        transition: border @duration, width @duration, height @duration, margin @duration;
        transition-tiomig-function: cubic-bezier(1, 0, 0, 1);
    }

    &:before {
        content: "";
        height: @size;
    }

    &.pause {
        .left, .right {
            margin: 0;
            border-left: @size*0.33 solid @color;
            border-top: 0 solid transparent;
            border-bottom: 0 solid transparent;
            height: @size*@sin;
        }
        .left {
            border-right: @size*0.2 solid transparent;
        }
    }

    &.play {
        @border: @size/4;
        .left {
            margin-left: @size/6;
            border-left: @size*@sin/2 solid @color;
            border-top: @border solid transparent;
            border-bottom: @border solid transparent;
            border-right: 0px solid transparent;
            height: @size - 2*@border;
        }
        .right {
            margin: 0;
            border-left: @size*@sin/2 solid @color;
            border-top: @border solid transparent;
            border-bottom: @border solid transparent;
            height: 0px;
         }
    }

    &:hover {
        border-color: @highlight;
        .left, .right {
            border-left-color: @highlight;
        }
    }
}

这是从播放到暂停(JQuery.js)的过渡:

$(".control").on('mousedown', function() {
    if (video.paused == true) {
        $(this).toggleClass('pause play');
        video.play();
    } else {
        $(this).toggleClass('play pause');
        video.pause();
    }
});

这是通过单击列表中的li元素(JQuery.js)触发的事件:

$('.video-element').click(function(){
    var videosource = $(this).find("div.source").html();
    var imgsource = $(this).find(".video-thumbnails").attr("src");

    $(".control").toggleClass('play');
    document.getElementById('video-player').setAttribute('poster',imgsource);
    document.getElementById('mp4').setAttribute('src','videos/'+videosource + ".mp4");
    document.getElementById('ogv').setAttribute('src','videos/'+videosource + ".ogv");
    document.getElementById('webm').setAttribute('src','videos/'+videosource + ".webm");
    $("#video-player").load();
});

到目前为止,我尝试将$(".control").toggleClass('play');添加到有关视频更改的代码中,因为每次点击新视频时按钮都会更改为暂停或播放。< / p>

1 个答案:

答案 0 :(得分:1)

更改视频源时,是否还可以更改播放/暂停按钮的类别?也就是说,在您的点击中功能,包括

  1. 更改视频来源的代码(已完成)
  2. 将按钮类更改为“播放”的代码&#39; (使用$(elem).setClass("play")或类似的东西)。