【任务二怎么设置滑动条? _节点操作 】 | IT修真院·坑乎
问题已收录 任务二怎么设置滑动条?
我也踩过这个坑( 4 )
已统计您的踩坑,无需重复点击
回答(4)
节点操作
详细描述
图片
文本
编辑于2024-11-24
  • [武汉|荣耀师兄]JS-吴胜
    3

    前面师兄回答的挺不错的。

    这里我就不给你提供代码了,给你提供一下思路。

    滑动条和文本框 是2个Input

    获取这2个Input的节点

    取值应该明白了把value

    先做第一步,让文本框的数值和滑动条关联?怎么关联?核心思想:滑动条取值,文本框赋值给滑动条(这是一个触发事件,做完后。记得完善文本框,比如限制数字范围,限制输入类型)。

    在做第二步,做完了文本框输入数值后滑动条会对应,是不是就等于滑动条滑动变值后文本框就会对应改变? 如果不能缺了那一步?(赋值不是互相对应的,这里要再做一次赋值,也就是将滑动条的值赋给文本框,这样就对应了。也同样是一个触发事件)

    第三步:按钮?  跟前面做法异曲同工之妙,核心(for循环)。


    如果思路有了不知道如何下笔,请看看师兄的代码然后思考理解!

    编辑于2018-12-28
  • [深圳|结业弟子]JS-孟广旭
    2

    html:

    <div class="bottom-box">
    <input type="button" class="img7" onclick="btLeft()">
    <input type="range" id="rangeNumber" oninput="change()" name="change" value="4" min="4" max="18" step="1" >
    <input type="button" class="img8" onclick="btRight()">
    </div>

    css:

    .bottom-box {
    display: flex;
    justify-content: space-around;
    align-items: center;
    width: 70%;
    margin: .2rem auto 0 auto;
    }
    /*横条样式*/
    input[type=range] {
    -webkit-appearance: none;/*清除系统默认样式*/
       width: 90%;
    height: 5px;/*横条的高度*/
       background-color: #fab344;
    outline: none;
    cursor: pointer;
    }
    /*拖动块的样式*/
    input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;/*清除系统默认样式*/
       width: .3rem;
    height: .2rem;
    background: url(../image/img9.png) no-repeat 0 0/cover;
    border: none;
    cursor: pointer;
    }
    .img7 {
    width: .2rem;
    height: .2rem;
    background: url(../image/img7.png) no-repeat 0 0/cover;;
    outline: none;
    border: none;
    }
    .img8 {
    width: .2rem;
    height: .2rem;
    background: url(../image/img8.png) no-repeat 0 0/cover;;
    outline: none;
    border: none;
    }

    js:

    var inputNumber = document.getElementById("inputNumber");
    var rangeNumber = document.getElementById("rangeNumber");
    //玩家人数的输入框与滚动条同步
    function getNumber(){
    if(inputNumber.value>=4&&inputerNumber.value<=18){
    inputNumber.value=rangeNumber.value;
    }
    else{
    alert("请输入玩家人数");
    }
    }
    //滚动条改变玩家人数随着改变
    function change(){
    inputNumber.value=rangeNumber.value;
    }
    //减号按钮与滚动条同步
    function btLeft(){
    rangeNumber.value--;
    if(inputNumber.value<=4) {
    alert("人数不足,请凑好再来");
    }
    else{
    inputNumber.value=rangeNumber.value;
    }
    }
    //加号按钮与滚动条同步
    function btRight(){
    rangeNumber.value++;
    if(inputNumber.value>=18) {
    alert("人数太多,请分开游戏");
    }
    else{
    inputNumber.value=rangeNumber.value;
    }
    }


    编辑于2018-12-30
  • [上海|荣耀师兄]JS-林钟远
    0

    前面师兄提供的思路不错,这里我再给另一种解决思路。只需要一个input表单就可以实现,用到的是input一个新增的属性range,就可以做出一个样板出来,但是需要注意一点,这个原版的滑动条就和我们CSS-10做单选框一样,自带的样式非常丑,所以我们需要隐藏掉这个自带的样式,用CSS自己写。具体思路就是用到input::slider-thumb 和 input::slider-runnable-track来做出滑轨和滑块的样式。


    至于左右加减的动作,你可以先用CSS画出两个+ -框框,然后添加点击函数,当点击+的时候,input的value值就增加,反之减少。注意需要加入监听来保证数值的同步变化

    编辑于2019-04-26
  • [武汉|结业弟子]JS-刘平
    0

    滑动条使用input的range样式实现,修改默认样式就可以了,关联可以参考如下

    //滑动条监听,实现滑动条和输入框人数同步功能
    input_range.oninput = function () {
        input_text.value = input_range.value;
        people_number(); //调用人数分配方法
    }

    input_text.oninput = function () {
        input_range.value = input_text.value;
        people_number();
    }


    编辑于2019-11-11