【问题标题】:Get jQuery UI Slider value when sliding?滑动时获取jQuery UI Slider值?
【发布时间】:2015-10-15 22:38:35
【问题描述】:

我有这个演示,您可以在其中使用 YouTube Player API 更改 YouTube 视频的时间和音量。我正在尝试做的是在滑动或“擦洗”滑块时更新 UI 滑块值。我已经完成了第一部分,它使用这个整洁的小 sn-p 代码滑动时活泼地更新值:

slide: function(event, ui) {
    $("#content").text("video_time: " + ui.value.toString().toHHMMSS());
}

不幸的是......我正在尝试做的事情,当我滑动时,时间会成功更新,但会在一秒钟后重置。这是因为我有一个 present 函数,它会导致它不断更新并确保 jQuery UI Slider 值与 YouTube 视频的值匹配,要让它工作对我来说是一个挑战。

如果有任何可能的解决方法,请告诉我,谢谢!

演示: http://codepen.io/mistkaes/pen/MwONzK?editors=001

【问题讨论】:

    标签: jquery html css jquery-ui youtube-api


    【解决方案1】:

    $("#content").text("video_time:" + player.getCurrentTime().toString().toHHMMSS());

    onReady 事件中的行覆盖了slide 事件中的行。由于您在开始搜索时暂停视频,所以我只是检查播放器是否在onReady 中暂停,如果不是,则使用播放器的当前时间作为值。

    换句话说,改变

    setInterval(function() {
        $("#content").text("video_time: " + 
        player.getCurrentTime().toString().toHHMMSS());
    }, 250);
    

    setInterval(function() {
        if(player.getPlayerState()!=2)//video not paused, use player time as video_time
        //thus, when the player IS paused, use the value from the slider as the 
        //video time, which is what you wanted
        {
            $("#content").text("video_time: " + 
            player.getCurrentTime().toString().toHHMMSS());
        }
    }, 250);
    

    在您的onReady 活动中。

    【讨论】:

    • 我使用this 文档找到了与正在暂停的播放器相对应的数字。
    • 没问题,很高兴为您提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多