2016-12-06 75 views
0

什么是设置的最佳途径个箭头向上/向下滑动/选择器中选择元素在网页中是这样的:最佳实践,实现上下箭头选择字段

up down arrow slider for percentage

  1. 具有专用背景的选择列表。如果是,那么如何检测到用户点击向上或向下箭头?
  2. 为每个百分比上/下项目构建一个三行/一列的表格,其中:a)行1 =向上箭头,b)行2 =选择选项列表,c)行3 =向下箭头
  3. 其他一些解?

注:百分比可以增加/ 5%步骤减少

+0

预计点击箭头仅增加或减少值的结果呢? – guest271314

+0

显示您尝试的操作 – jafarbtech

+0

@ guest271314:单击箭头应增加/减少值,是的。此外,onchange事件应该启用对javascript函数的调用。 – user2145488

回答

2

您可以使用<input type="number">元素,<label>元素,css:before:afterinput事件来处理点击input type="number"元素,自定义事件处理点击label元素。

$("label[for]").on("click", function(event) { 
 
    $("#input").val(function(_, n) { 
 
    return event.target.htmlFor === "up" 
 
      ? +n < +this.max ? +n + 5 : n 
 
      : +n > +this.min ? +n - 5 : n; 
 
    }).trigger("arrow") 
 
}); 
 

 
$("#input").on("input arrow", function(event) { 
 
    if (event.isTrigger) { 
 
    console.log("arrow"); 
 
    } else { 
 
    console.log("input") 
 
    } 
 
    console.log(this.value + "%") 
 
});
@charset "UTF-8"; 
 
div { 
 
    position: relative; 
 
    top: 50px; 
 
} 
 
input[type="number"] { 
 
    width: 45px; 
 
    outline: thin solid navy; 
 
} 
 
label[for="up"]:nth-of-type(1):before { 
 
    content: "\25B2"; 
 
    top: -20px !important; 
 
    left: 32.5px; 
 
    position: relative; 
 
} 
 
label[for="down"]:before { 
 
    content: "\25BC"; 
 
    position: relative; 
 
    top: 20px !important; 
 
    left: -32.5px; 
 
} 
 
label[for="down"]:after { 
 
    content: "%"; 
 
    position: relative; 
 
    font-weight: bold; 
 
    font-size: 14px; 
 
    position: relative; 
 
    left: -10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <select id="select1"> 
 
    <option value="abc">abc</option> 
 
    </select> 
 
    <label for="up"></label><input id="input" type="number" min="0" max="100" step="5" value="0"><label for="down"></label> 
 
</div> 
 
<script> 
 
</script>

+1

我从中学到了很多东西。谢谢。 – user2145488

+0

只剩下一个问题:在Chrome(Ubuntu)中点击快速会对Web内容进行奇怪的选择。这不会出现在Firefox @ Ubuntu中。请参阅:[link] https://www.youtube.com/watch?v=rntq0o0nFc0 – user2145488

+0

@ user2145488不确定要传达什么视频? – guest271314