wha*_*123 6 javascript css html5 jquery-ui css3
我是JavaScript/CSS的新手(基本上是web dev的整个世界),我真的很难创建以下小部件.我创建了一张我想要制作的图片,以使其更清晰.

播放/暂停和停止按钮准备就绪.循环复选框没问题.但进度条很痛苦.这两个标记应该标记文件开始播放的位置以及停止的位置.进度条也应该是可点击的,所以如果我想访问某个时间点,那么它可能.
jQuery UI滑块:用于滑动进度条并使用该可拖动滑块访问音频文件中的某个点.工作良好.但没有标记,看起来真的很难看.不要如何改变它.
<progress>标签:不是很灵活.标记?点击?
<div> tag:似乎无法获得我点击的位置.
那么,你们推荐什么?我该怎么办?
您可能希望使用a canvas并在其中绘制自己的进度条元素.
这是一些画布进度条教程:
<progress>要访问DOMElement中单击的位置,您可以继续执行click事件的属性:clientX和clientY(MDN Source),如下所示:
<div class="marker" id="StartMarker">^</div>
<div class="marker" id="StopMarker">^</div>
<progress id="progress" value="0" min="0" max="100">0%</progress>
<form id="choice">
    <button id="marker1">Beginning marker</button>
    <button id="marker2">Ending marker</button>
    <input type="hidden" id="markerValue" value="0" />
</form>
document.getElementById('progress').onclick = function (event, element) {
    /* Math.floor((event.offsetX / this.offsetWidth) * 100) */
    var newProgress = event.offsetX;
    document.getElementById('choice').style.display = "block";
    document.getElementById('markerValue').setAttribute('value', newProgress);
    document.getElementById('marker1').onclick = function (event) {
        event.preventDefault();
        var newProgress = document.getElementById('markerValue').value;
        var progressBar = document.getElementById('progress');
        var startMarker = document.getElementById('StartMarker');
        var stopMarker = document.getElementById('StopMarker');
        var marker = startMarker;
        marker.style.display = "block";
        startMarker.style.display = "block";
        startMarker.offsetTop = (progressBar.offsetTop + progressBar.offsetHeight + 2) + "px";
        startMarker.style.left = newProgress + "px";
    };
    document.getElementById('marker2').onclick = function (event) {
        event.preventDefault();
        var newProgress = document.getElementById('markerValue').value;
        var progressBar = document.getElementById('progress');
        var startMarker = document.getElementById('StartMarker');
        var stopMarker = document.getElementById('StopMarker');
        stopMarker.style.display = "block";
        stopMarker.offsetTop = (progressBar.offsetTop + progressBar.offsetHeight + 2) + "px";
        stopMarker.style.left = newProgress + "px";
    };
};
.marker {
    position:absolute;
    top:24px;
    left:9px;
    display:none;
    z-index:8;
    font-weight:bold;
    text-align:center;
}
#StartMarker {
    color: #CF0;
}
#StopMarker {
    color:#F00;
}
#choice {
    display:none;
}
progress {
    display: inline-block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 300px;
    height: 20px;
    padding: 3px 3px 2px 3px;
    background: #333;
    background: -webkit-linear-gradient(#2d2d2d, #444);
    background: -moz-linear-gradient(#2d2d2d, #444);
    background: -o-linear-gradient(#2d2d2d, #444);
    background: linear-gradient(#2d2d2d, #444);
    border: 1px solid rgba(0, 0, 0, .5);
    border-radius: 15px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .2);
}
| 归档时间: | 
 | 
| 查看次数: | 6801 次 | 
| 最近记录: |