【发布时间】:2013-05-24 07:24:58
【问题描述】:
我正在搜索一个进度条(或没有拇指的滑块,它不会启用交互)。
我想在 HTML5 项目中使用适用于 iOS/Android/Windows 移动设备的 jQuery 移动设备。目前不支持移动浏览器progress。
有没有人有代码或知道插件(我不想只为那个元素集成 jQuery UI)
【问题讨论】:
标签: jquery html css jquery-mobile progress-bar
我正在搜索一个进度条(或没有拇指的滑块,它不会启用交互)。
我想在 HTML5 项目中使用适用于 iOS/Android/Windows 移动设备的 jQuery 移动设备。目前不支持移动浏览器progress。
有没有人有代码或知道插件(我不想只为那个元素集成 jQuery UI)
【问题讨论】:
标签: jquery html css jquery-mobile progress-bar
jQuery Mobile 仍然可以用于此,主要是因为样式可以保持不变。
工作示例:http://jsfiddle.net/Gajotres/mFqUd/
示例有一个工作演示,因此请看一下。如果这是你需要的,我会用它创建一个插件。
此代码将创建在放置和滑块按钮中不可见的滑块:
$('<input>').appendTo('[ data-role="content"]').attr({'name':'slider','id':'slider','data-highlight':'true','min':'0','max':'100','value':'50','type':'range'}).slider({
create: function( event, ui ) {
$(this).parent().find('input').hide();
$(this).parent().find('input').css('margin-left','-9999px'); // Fix for some FF versions
$(this).parent().find('.ui-slider-track').css('margin','0 15px 0 15px');
$(this).parent().find('.ui-slider-handle').hide();
}
}).slider("refresh");
进度条父容器必须设置在.appendTo()....部分。
然后使用此函数更改进度条值并更改其视觉样式:
var progressBar = {
setValue:function(id, value) {
$(id).val(value);
$(id).slider("refresh");
}
}
id 是进度条 ID,value 是必需值。滑块设置为在 0 到 100 之间工作,因此任何整数值都将计为百分比值。
【讨论】:
上面 Gajotres 的回答帮助我找到了完美的解决方案。
首先简单地添加一个 jQuery Mobile Slider 元素到你的页面
<input type="range" name="slider-2" id="slider-2" data-highlight="true" min="0" max="100" value="50">
然后神奇的事情发生在 jQuery 上:
$( "#page-progress" ).on( "pagebeforeshow", function( event ) {
$("input").remove();
$(".ui-slider-handle").remove();
$('.ui-slider-track').css('margin','0 15px 0 15px').css('pointer-events','none');
});
这将产生一个进度静态进度条,您可以通过编程方式对其进行更改。用户输入被禁用,因此用户无法拖动进度条。
这对我来说非常有用,因为我想显示一个静态进度条(而不是加载条)。需要额外的工作来以编程方式设置动画或更改。享受吧!
【讨论】:
我用过一次……只用css-tricks
检查这是不是你需要的
【讨论】: