- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 <audio>
有一个简单的进度条元素,我想让旋钮可以拖动,所以我决定尝试 jquery UI .draggable
方法,但它不适用于我的旋钮。它所做的只是防止当您将鼠标悬停在播放器上时我的旋钮出现,就好像下面的代码一出现就无效了。
我已经尝试了几个小时,但无法弄清楚我的代码有什么问题。您可以在下面看到播放器:我还包含了一个测试音频文件,因此您可以看到它的运行情况。 (当您将鼠标悬停在播放器上时,旋钮应该会淡入,但在可拖动方法之后不会。某些东西使其无效,如果您希望看到旋钮,只需删除标记为/** 的代码这不起作用/** )
/**
VARIABLES
**/
/** Elements **/
var player = $("#player");
var playerE = $("#player")[0];
var playerE = $("#player").get(0);
var playbutton = $("#playButton");
var scrubber = $(".scrubber");
var progress = $(".progress");
var buffered = $(".buffered");
var knob = $(".knob");
/** Variables **/
var isPlaying = 0;
var buffered = 0;
var progress = 0;
/**
CONTROLS
**/
/** Scrubber and Time **/
playerE.ontimeupdate = function () {
audioTimeUpdater();
};
function audioTimeUpdater() {
var progress = playerE.currentTime / playerE.duration;
var buffered = playerE.buffered.end(0) / playerE.duration;
$(".progress").width((progress * 100) + "%");
$(".buffered").width((buffered * 100) + "%");
}
/** This does not work **/
$("#.knob").draggable({
axis: "x"
});
/** This also stops working after the above code, if I remove it, it works. **/
$(".player-small").mouseenter(function () {
$(".knob").stop().fadeIn(200);
});
setTimeout(function () {
$(".player-small").mouseleave(function () {
$(".knob").stop().fadeOut(200);
});
}, 3000);
/**
EVENT HANDLERS
**/
/**
FUNCTIONS
**/
function play(file, title) {
playbutton.removeClass("playFailed");
var filename = "/music/" + file;
player.attr("src", filename).trigger("play");
playerHasError();
if (playerIsToggled === 0) {
playerToggle();
}
}
function playerHasError() {
$("#player").on("error", function (e) {
source = $("#player").attr('src');
pushModal("We can't play that!", "Audio element error.", ("An error occured and " + source + " cannot be played. If this is an error that persists please contact the website administrator."), "Audio element returned error trying to play source.", 1);
playbutton.addClass("playFailed");
});
}
button {
border: none;
outline: none;
}
body,
nav,
ul,
li,
a {
padding: 0;
margin: 0;
list-style: none;
font-family: 'Roboto', sans-serif;
text-decoration: none;
}
body {
overflow-y: scroll;
}
::selection {
background: rgba(255, 64, 129, 0.85);
color: black;
/* WebKit/Blink Browsers */
}
::-moz-selection {
background: rgba(255, 64, 129, 0.85);
color: black;
}
.player-small {
height: 55px;
width: 100%;
background: #ff4081;
}
.player-height-anim {}
.player-small .left {
height: 55px;
float: left;
width: 60%;
}
.player-small .right {
height: 55px;
float: right;
width: 40%;
}
.transport {
overflow: auto;
}
.play-button-con {
height: 55px;
width: 55px;
float: left;
}
.play {
padding-top: 3px;
width: 55px;
height: 55px;
font-size: 18px;
padding-right: 4px;
text-align: center;
}
.playFailed {
color: rgba(255, 255, 255, 0.17)!important;
pointer-events: none;
}
.next-button-con {
height: 55px;
width: 55px;
float: left;
}
.next {
padding-top: 2px;
padding-right: 8px;
width: 55px;
height: 55px;
text-align: center;
letter-spacing: -3px;
font-size: 11px;
padding-bottom: 2px
}
.scrubber-con {
float: left;
height: 55px;
width: calc(100% - 111px);
}
.scrubber {
width: calc(100% - 40px);
margin: auto;
margin-top: 25px;
height: 5px;
background: rgba(0, 0, 0, .04);
cursor: pointer;
}
.scrubber .knob {
float: right;
height: 13px;
width: 13px;
position: relative;
bottom: 4px;
left: 5px;
background: white;
border-radius: 50px;
display: none;
}
.scrubber .knob:hover {
cursor: grab;
}
.scrubber .knob:active {
cursor: grabbing;
}
.scrubber .progress {
height: 100%;
float: left;
background: white;
width: 0%;
position: relative;
z-index: 1;
transition: ease 300ms;
}
.scrubber .buffered {
height: 5px;
position: relative;
width: 0%;
background: rgba(0, 0, 0, .09);
transition: ease 1000ms;
}
.player-small button {
color: white;
float: left;
background: rgba(0, 0, 0, .04);
cursor: pointer;
}
.player-small button:hover {
background: rgba(0, 0, 0, .12);
}
<script type="text/javascript " src="http://code.jquery.com/jquery-latest.min.js "></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<div class="player-small">
<div class="w-ctrl">
<div class="controls">
<div class="left">
<div class="transport">
<div class="play-button-con">
<button class="play" id="playButton">►</button>
</div>
<div class="next-button-con">
<button class="next">►► </button>
</div>
<div class="scrubber-con">
<div class="scrubber">
<div class="progress">
<div class="knob"></div>
</div>
<div class="buffered"></div>
</div>
</div>
</div>
</div>
<div class="right">
<audio id="player" src="http://c1d20c5c.ngrok.io/music/test.mp3" controls="controls" preload="none"></audio>
</div>
</div>
</div>
</div>
所以正如您所看到的,旋钮甚至没有出现,即使您让它出现,它仍然不可拖动。我测试了 lint,一切正常,应该可以正常工作,但事实并非如此。我做错了什么?
最佳答案
您的选择器有误:
$("#.knob").draggable({...});
#.knob
将不起作用,您可以使用 #idname
通过 id 或通过 class< 选择/strong> 使用 .classname
。
在你的html中,knob是一个类,所以使用
$(".knob").draggable({
axis: "x"
});
应该有效,但请注意,这会选择具有 knob
类的所有 html 元素。
关于javascript - 可拖动在 jqueryUI 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31391920/
我正在关注 this tutorial在 jqueryui 工具提示中显示验证错误。验证工作正常,但我无法显示正确的错误消息,因为正确的属性无法有条件地链接到工具提示,如下面的示例所示: $(docu
我在 ASP.NET 页面中使用 jqGrid 并将数据注入(inject)到页面上的脚本 block 中,然后从那里加载。对于这一用例,我们需要立即在屏幕上显示大量数据。其中涉及 300~500 条
This jQuery plugin ,它允许用户在 div 中绘制矩形,适用于 jQueryUI 1.7.2。 我需要让它与 jQueryUI 1.8.4 一起工作。来自阅读widget upgra
我有一个使用 jQueryUI 可排序的列表。 我需要根据插件的“更改”事件在拖动时跟踪元素的每一步。 但它只能从缓慢到正常的阻力可靠地工作。在这些速度下,没有任何错误。但是如果用户相对较快地拖动元素
当我重复滚动某个元素时 jQuery tooltip似乎在跳来跳去。我想也许是因为它与自身发生碰撞,所以我将碰撞选项设置为none,但这没有帮助。 这是一个错误吗?我怎样才能让它不跳来跳去? 最佳答案
如果返回的 json 对象如下所示,我有一个可以正常工作的 jQuery UI Autocomplete: label:name value:name 然后它会搜索 myname,当用户选择一个时,它
我是 JQueryUI 的新手,虽然我有一个对话框正在工作,但它没有以我认为指定的大小打开。为什么定义对话框时设置宽度和高度不会影响对话框的初始大小?如何将其设为 600 像素 x 500 像素? 这
我有一个简单的任务却让我抓狂。 我的 jQuery 代码: $(document).ready(function() { $("#dialog_open").butto
我正在使用 jQueryUI 1.8,它具有自动完成功能。 到目前为止,我已经成功地在多个领域实现了自动完成功能,如下所示: $(function() { $("#auto").autocom
我使用 UL 元素创建一个菜单,我使用 jQueryUI 来显示此菜单。 Edit Translation Edit Comment Edit Bind Edit R
我正在使用最新版本的 JqueryUI 自动完成(1.8.23)。我正在使用 autoFocus : true 属性,这给我带来了一个大问题。 当我开始在输入框中快速输入文本时,autoFocus :
问题: 当使用多个标准 jQueryUI 对话框实例化时,如下所示: $("#dialog").dialog({}); $("#dialog2").dialog({}); 如果有大量内容或设置了特定高
看看这个 jsfiddle 我试图将两个按钮并排放置,其中一个按钮是动态的,并且仅在发生特定事件时才会出现(在示例中是按下另一个按钮)。但在动画转换过程中,布局有点扭曲 $('.btn-toggle'
我有以下情况: 按钮打开一个包含复选框的模式对话框。当我单击此复选框时,我希望显示另一个模式对话框(警告),但我也想保留新的复选框状态(选中或未选中)。例如,如果复选框未选中并被单击,我希望显示警告并
我目前正在使用 jQuery UI 中的模态对话框作为菜单。该菜单由一些图像组成,单击这些图像时可用作菜单项。该站点使用动态 ajax 内容来加载所请求的页面。这是我的问题:单击图像后如何关闭模式对话
我正在处理 jqueryui 自动完成 JSONP 示例:http://jqueryui.com/demos/autocomplete/#remote-jsonp 即使在他们自己的演示中,我也设法让这
我正在使用 JQueryUI 对话框并在下面创建了此函数: $(document).ready(function() { $('#dialog').dialog({
我正在使用 jqueryui 自动完成来让我的文本框为用户显示各种选项。 在本例中,我只希望用户能够从列表中选择一个值,而不是输入另一个值。 我通过以下方式实现了这一点: $('#modelNo').
使用jQueryUI Autocomplete 我想将一些其他数据附加到框中的结果列表中。例如,我的数据集可能如下所示: [ { "name": "John's wild ba
尝试使用 jQueryUI 将表格列滑出 View ,然后再返回。遗憾的是,它似乎没有保留正确的列宽和位置,因此该列最终出现在错误的位置。 我遇到的问题的提炼版本在 http://jsfiddle.n
我是一名优秀的程序员,十分优秀!