2015-01-06 38 views
7

有什么办法可以允许正的最小值和负的最大值?我正在尝试在日志空间(10^8-10-13)中创建滑块,并希望在滑块上显示指数。HTML5输入类型的范围从正到负

<input type="range" min="8" max='-13' value="1" step="-1" id="myRange" > 

该值目前恢复为默认值max=100的值。

或者我可以以某种方式反转滑块吗?任何帮助将非常感激。

编辑:请记住我希望从8到13(日志空间10^8-10^-13)的缩放比例降低。编辑:在IDL xr = [8,-13](或R xlim = c(8,-13))。请注意,最小值是正值,最大值是负值,您可以相应地在两者之间切入。我正在寻求解决方法的帮助以创建与输入类型范围相同的行为。

+5

你能告诉我们一些是大于8并小于-13?你应该交换最小值最大值来完成这项工作。 –

+0

洛尔兹家伙-13小于8你应该把'min =' - 13''和'max ='8'' – madforstrength

+0

也许我不清楚。我希望比例从8开始下降到-13 – Liz

回答

4

你可以简单地通过-1切换的限制和多重价值:

<input type="range" min="-8" max='13' value="1" step="-1" id="slider" > 

$('#slider').change(function(){ 
    var val = -+($(this).val()); 
    console.log(val); 
}); 

如果你需要提交的价值,将其复制到一个隐藏字段,并使用该在服务器端而不是原来的。

A live demo at jsFiddle

0

您已经添加了不符合逻辑的条件。您需要交换的最小和最大价值,使滑块工作:

<input type="range" min="-13" max='8' value="1" step="1" id="myRange" > 

Working Demo

+0

我希望规模从8降低到-13(最小=规模的左侧)。问题是任何人都可以提出解决方法。 step = -1似乎没有帮助(它递增绝对步长值) – Liz

4

此滑块将得到扭转:分钟(左)是8和MAX(右)为-13,我认为这是你想要的...... step = -1不起作用。

HTML:

<input type="range" min="-13" max="8" value="1" step="1" id="range"/> 

CSS:

#range{ 
    transform: rotateY(180deg); 
} 

THX CSS!

+0

谢谢皮埃尔!对我来说很好,这简直太奇妙了!我会在网站的其他部分进行游戏,并在接受之前查看它是否合适。 – Liz

+0

如果没有在许多浏览器/版本中进行彻底测试,我不想依赖这一点。某处肯定会有问题。 –

+0

如果您正在寻找兼容性,即支持它,因为它支持滑块输入,因为ie9前缀和ie10通用:[w3schools.com/cssref/css3_pr_transform.asp](http://www.w3schools.com/cssref/css3_pr_transform .asp) –

0

我认为没有办法允许一个正的最小值和一个负的最大值,但是对于给定的情况,我们可以使用min = -8和max = 13,并且在变化时我们会将一个范围值的负值赋给一个变量。例如,

<script> 
var exponent=1; 
</script> 
<input type="range" min="-8" max='13' value="-1" step="1" id="myRange" onchange="document.exponent = - this.value;"> 
1

使用step = 1将滑块从0缩放到21。

在更改处理程序中,计算8 - $(this).val()以提供您实际需要的缩放比例。

HTML

<input type="range" min="0" max='21' value="7" step="1" id="myRange"> 

的Javascript

$('#myRange').change(function() { 
    var scaledValue = 8 - $(this).val(); 
    console.log(scaledValue); 
}); 

DEMO