javascript - 如何使用图像自定义 slider 处理程序

标签 javascript jquery css jquery-ui

有人知道如何在 JQuery Range Slider 中自定义处理程序吗?我一直在互联网上搜索并且有各种各样的答案,其中大多数指向更改 ui-slider-handle 类设置背景与您想要显示的图像。好吧,我已经尝试了一切,但它没有改变任何东西。也许我错过了什么。我给你看我的代码

这些是我从 jquery-ui 覆盖的类。库中还有更多,但这些是我已经覆盖的。注意我已经在 ui-slider ui-slider-handle 类中设置了图像

slider .css

.ui-slider-horizontal {
    height: .2em;
    top: .15em;
}

.ui-slider-horizontal .ui-slider-handle {
    top: -.6em;
    margin-left: -.6em;
}

.ui-slider .ui-slider-range {
    position: absolute;
    z-index: 1;
    font-size: .7em;
    display: block;
    border: 0;
    background-color: red;
    background-position: 0 0;
}

.ui-widget-content {
    border: 1px solid #aaaaaa;
    background: grey url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
    color: #222222;
}

.ui-slider .ui-slider-handle {
    position: absolute;
    background: url(../images/handle.png) no-repeat;
    overflow: hidden;
    border: none;
    z-index: 2;
    width: 1.2em;
    height: 1.2em;
    cursor: default;
    -ms-touch-action: none;
    touch-action: none;
}

这是我的html

<script>
    $(function() {
        $("#slider-range1").slider({
            animate: "fast",
            range: true,
            min: 0,
            max: 500,
            values: [75, 300],
            slide: function(event, ui) {
                $("#amount-min1").val(ui.values[0] + "€");
                $("#amount-max1").val(ui.values[1] + "€");
            }
        });
        $("#amount-min1").val($("#slider-range1").slider("values", 0) + "€");
        $("#amount-max1").val($("#slider-range1").slider("values", 1) + "€");
    });
</script>
<div class="filter-results">
    <div class="wrapper-title-range">
        <p class="text-title-range">Rango valoración</p>
    </div>
    <div class="wrapper-range">
        <div id="slider-range1">
        </div>
    </div>
    <p class="min-value">
        <input type="text" id="amount-min1" class="input-value min">
    </p>
    <p class="max-value">
        <input type="text" id="amount-max1" class="input-value max aligned-right">
    </p>
</div>

最佳答案

执行此操作的一种简单方法是在开始和停止幻灯片时使用 javascript 操纵样式。

    $(function() {
    $("#slider-range1").slider({
        animate: "fast",
        range: true,
        min: 0,
        max: 500,
        values: [75, 300],
        create: function( event, ui ) {
          $(".ui-slider-handle").show();
          $(".ui-slider-handle").css("background",'grey url("http://www.tramsy.com/www/img/share2.png") 50% 50% repeat-x');              
        },
        slide: function(event, ui) {
          $("#amount-min1").val(ui.values[0] + "€");
          $("#amount-max1").val(ui.values[1] + "€");              
        }
    });
    $("#amount-min1").val($("#slider-range1").slider("values", 0) + "€");
    $("#amount-max1").val($("#slider-range1").slider("values", 1) + "€");
});

关于javascript - 如何使用图像自定义 slider 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014401/

相关文章:

javascript - 在 Javascript 中使用 CSS3 的淡入动画

javascript - 在 openlayers map 上检测长按

php - 如何在 codeigniter 中制作背景 css URL?

javascript - 如何导出ES6中保留名称的变量?

Javascript 日期格式显示不正确的小时

javascript - 如何隐藏/禁用 Highcharts.js 中的图例框?

javascript - 为什么我必须检查 length === 0 才能重新启动幻灯片?

html - 移动导航栏问题

html - 如何使 resize 属性与 flexBox 一起使用?

javascript - 如何在javascript中对具有相同日期的行求和?