简体   繁体   English

jQuery UI slider 跳转

[英]jQuery UI slider jumps

I've created a simple slider with jQuery UI and I must have set something up a little wrong.我创建了一个简单的 slider 和 jQuery UI,我一定是设置了一些错误。 It works, but when you click on the slider handle, then move your mouse down slightly, the slider jumps several pixels.它可以工作,但是当你点击 slider 手柄,然后稍微向下移动鼠标时,slider 会跳动几个像素。

I have an example here: http://jsfiddle.net/pLJE8/3/我这里有一个例子: http://jsfiddle.net/pLJE8/3/

Anyone know how to remedy this?任何人都知道如何解决这个问题?

Thanks!谢谢!

I just had the same problem.我只是有同样的问题。 I was trying out the time range sample from this site我正在尝试这个网站的时间范围样本

After some testing I ended up with this code.经过一些测试后,我得到了这段代码。

<script type="text/javascript">
    $(document).ready(function () {
        $(".slider-timerange").slider({
            range: true,
            min: 0,
            max: 1439,
            values: [540, 1020],
            step: 5,
            slide: function (event, ui) {
                var val0 = ui.values[0];
                var val1 = ui.values[1];
                slideTime(val0, val1);
            }
        });

        var initialVal0 = $("#slider-timerange").slider("values", 0);
        var initialVal1 = $("#slider-timerange").slider("values", 1);
        slideTime(initialVal0, initialVal1);
    });

    function slideTime(val0, val1) {
        var minutes0 = parseInt(val0 % 60, 10);
        var hours0 = parseInt(val0 / 60 % 24, 10);
        var minutes1 = parseInt(val1 % 60, 10);
        var hours1 = parseInt(val1 / 60 % 24, 10);
        var startTime = getTime(hours0, minutes0);
        var endTime = getTime(hours1, minutes1);
        $("#time-range").text(startTime + ' - ' + endTime);
    }
</script>

It seems like doing the following call is the sinner which causes the jumping.似乎进行以下调用是导致跳跃的罪人。

var val0 = $("#slider-timerange").slider("values", 0);

PS: I'm not a javascript wiz;) PS:我不是 javascript wiz;)

You just need to set margin left half of width您只需要将边距设置为宽度的一半

.ui-slider .ui-slider-handle{ //for vertical
    height: 30px;   
    margin-bottom:-15px;
}
.ui-slider .ui-slider-handle{ //for horizontal
    width: 30px;   
    margin-left:-15px;
}

and set css acordingly.并相应地设置 css。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM