Javascript 如何将默认预览宽度设置为Rickshaw.Graph.RangeSlaider

Javascript 如何将默认预览宽度设置为Rickshaw.Graph.RangeSlaider,javascript,rickshaw,Javascript,Rickshaw,我是人力车新手。 在示例中,用于选择时间帧的图形底部的预览栏(Rickshaw.Graph.RangeSloider)默认为可用的总时间帧 如何将默认预览自定义为RangeSloider的最后一分钟和最小预览宽度 提前感谢。看起来所有的缩放和预览重画都是在屏幕内部完成的。因此,除了使用这些事件处理程序之外,似乎没有任何方法可以更改或默认预览宽度-奇怪的是,它没有在某个地方进行分解,以便您可以手动设置缩放 作为一种可怕的黑客行为,您可以显式触发一系列鼠标事件来模拟鼠标下/拖动/上,根据要移动到的容

我是人力车新手。 在示例中,用于选择时间帧的图形底部的预览栏(Rickshaw.Graph.RangeSloider)默认为可用的总时间帧

如何将默认预览自定义为RangeSloider的最后一分钟和最小预览宽度


提前感谢。

看起来所有的缩放和预览重画都是在屏幕内部完成的。因此,除了使用这些事件处理程序之外,似乎没有任何方法可以更改或默认预览宽度-奇怪的是,它没有在某个地方进行分解,以便您可以手动设置缩放

作为一种可怕的黑客行为,您可以显式触发一系列鼠标事件来模拟鼠标下/拖动/上,根据要移动到的容器宽度的任何分数设置clientX值。例如(在Chrome中),我们将mousedown发送到左手柄,然后将mousemove和mouseup移动到文档,其中w是我的容器宽度,我希望缩放到t1-t2范围,而不是默认的t0-t2范围

    // fake handle move
    edown = document.createEvent("HTMLEvents");
    edown.initEvent("mousedown", true, true);
    edown.clientX = 0;
    emove = document.createEvent("HTMLEvents");
    emove.initEvent("mousemove", true, true);
    emove.clientX = 0.9 * w * (t1 - t0) / (t2 - t0) ;
    eup = document.createEvent("HTMLEvents");
    eup.initEvent("mouseup", true, true);
    $('#slider .left_handle')[0].dispatchEvent(edown);
    document.dispatchEvent(emove);
    document.dispatchEvent(eup); 

我知道这个问题由来已久,但万一有人碰到同样的问题:不要伪造鼠标事件。查看滑块的代码,它在滑动时所做的是设置图形窗口的
xMin
xMax
,然后进行更新。我们也可以这样做-在图形调用初始化之后:

// lower limit            
graph.window.xMin = 5;
// upper limit
graph.window.xMax = 10;
// this will also update the slider
graph.update();

成功了!谢谢不过有几条评论。1) 为什么是0.9*?我认为这是额外的,至少对我的应用程序来说是这样。2) initEvent已弃用。这里最好使用Event()构造函数或jquery.trigger()。然而,document.createEvent()是使其在iSorry中工作的唯一方法。是的,我认为0.9w是我的实际容器宽度。re 2)毫无疑问,这是一个剪切粘贴编码在我身上起作用的案例:)