4

我正在寻找一个进度条(或没有拇指的滑块,它不会启用交互)。

我想在带有 jQ​​uery mobile 的 iOS/Android/Windows mobile 的 HTML5 项目中使用它。目前不支持在移动浏览器上进行进度。

有没有人有代码或知道插件(我不想只为那个元素集成 jQuery UI)

4

3 回答 3

13

介绍

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 之间工作,因此任何整数值都将计为百分比值。

于 2013-05-24T10:20:16.537 回答
6

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');
});

这将产生一个进度静态进度条,您可以通过编程方式更改该进度条。用户输入被禁用,因此用户无法拖动进度条。

这对我来说非常有用,因为我想显示一个静态进度条(而不是加载条)。需要额外的工作来以编程方式设置动画或更改。享受!

于 2014-05-19T00:06:33.750 回答
1

我用过这些……只用css-tricks

检查这是否是您需要的

于 2013-05-24T07:34:38.350 回答