美文网首页
原生JS实现拖拽条效果

原生JS实现拖拽条效果

作者: 知名大学士 | 来源:发表于2020-03-16 22:46 被阅读0次
效果图

HTML结构:

首先是我们的HTML结构,我们的拖拽条使用了<input />标签来实现,<input type="range" min="0" max="100" step="0.1"value="0" />10类型设置为range即可出现拖拽条样式。
HTML:

    <div id="box">
        <div class="item">
            <p><span>功能</span>-你觉得这个创意在功能上优秀吗?<em>分数越高表示 越优秀</em></p>
            <span>0</span>0<input type="range" min="0" max="100" step="0.1" value="0" />10
        </div>
        <div class="item">
            <p><span>外观</span>-你觉得这个创意在外观上优秀吗?<em>分数越高表示 越优秀</em></p>
            <span>0</span>0<input type="range" min="0" max="100" step="0.1"value="0" />10
        </div>
        <div class="item">
            <p><span>成本</span>-你觉得这个创意在成本上优秀吗?<em>分数越高表示 越优秀</em></p>
            <span>0</span>0<input type="range" min="0" max="100" step="0.1"value="0" />10
        </div>
        <div class="item">
            <p><span>难度</span>-你觉得这个创意在难度上优秀吗?<em>分数越高表示 越优秀</em></p>
            <span>0</span>0<input type="range" min="0" max="100" step="0.1"value="0" />10
        </div>
        <div class="item">
            <p><span>环保</span>-你觉得这个创意在环保上优秀吗?<em>分数越高表示 越优秀</em></p>
            <span>0</span>0<input type="range" min="0" max="100" step="0.1"value="0" />10
        </div>
    </div>

CSS样式:

我们可以单独对拖拽条的按钮和条进行样式的设置,其中background-size: 0 100%;是我们实现拖拽按钮左右颜色不同的关键。

        input[type="range"] {
            /*-webkit-box-shadow: 0 1px 0 0px #424242, 0 1px 0 #060607 inset, 0px 2px 10px 0px black inset, 1px 0px 2px rgba(0, 0, 0, 0.4) inset, 0 0px 1px rgba(0, 0, 0, 0.6) inset;*/
            -webkit-appearance: none;
            outline: none;
            /*去除默认样式*/
            background-color: rgb(137,200,173);
            background: -webkit-linear-gradient(rgb(137,200,173), rgb(137,200,173)) no-repeat, #ddd;
            background-size: 0 100%;
            border-radius: 10px;
            /*border-radius: 15px;*/
            width: 300px !important;
            -webkit-appearance: none;
            height: 12px;
            padding: 0;
            border: none;
            margin-bottom: 10px;
            /*input的长度为80%,margin-left的长度为10%*/
            margin: 0 10px;
        }
        input[type="range"]::-webkit-slider-thumb {
            -webkit-appearance: none;
            /*去除默认样式*/
            cursor: default;
            top: 0;
            height: 30px;
            width: 10px;
            transform: translateY(0px);
            /*background: none repeat scroll 0 0 #5891f5;*/
            background: rgb(137,200,173);
            border-radius: 15px;
            /*-webkit-box-shadow: 0 -1px 1px #fc7701 inset;*/
        }
        #box{
            width: 900px;
            margin: 0 auto;
            overflow: hidden;
            font-size: 14px;
        }
        .item{
            width: 400px;
            margin: 0 12px;
            height: 100px;
            float: left;
        }
        .item p{
            color: rgb(190, 188, 21);
        }
        .item p span{
            font-size: 20px;
        }
        .item p em{
            font-style: normal;
            color: rgb(145,197,69);
        }
        .item>span{
            display: inline-block;
            width: 40px;
            height: 30px;
            border: 1px solid black;
            margin-right: 10px;
            text-align: center;
            line-height: 30px;
        }

JS逻辑:

        var int_ele = document.querySelectorAll("input");
        var box_ele = document.getElementById("box");
        on(box_ele, "input", "input",function(e){
            var target = e.target;
            // 当前数值
            target.previousElementSibling.innerText = Math.floor(target.value * 100) / 1000;
            // 设置进度条颜色
            target.style.backgroundSize = target.value + "% 100%";
        });

相关文章

  • 原生JS实现拖拽条效果

    HTML结构: 首先是我们的HTML结构,我们的拖拽条使用了 标签来实现, 10类型设置为range即可出现拖拽条...

  • 实现拖拽

    原生js实现 HTML5原生实现:拖拽draggable属性、DataTranfers对象

  • HTML5实现拖拽

    实现拖拽效果源元素 - 要拖拽的文件目标元素 - 要拖拽到哪里去 目前实现拖拽效果使用原生DOM就能实现 - 最麻...

  • 原生JS实现Tab切换效果和模态框效果

    原生JS实现Tab切换效果 效果展示 原生JS实现模态框效果 效果展示

  • js拖拽html元素工具类

    复制就能用的拖拽js方法 原生js实现拖拽元素方法 使用(注意拖拽目标元素需绝对定位 position: 'abs...

  • Drag Drop---API

    在h4标准中,我们定义个拖拽事件是很麻烦的,用原生的js来实现拖拽的效果。我们需要计算拖拽的元素的坐标位置和距离之...

  • 原生js拖拽效果

    最近新学了拖拽效果,没有好记性,只好用烂笔头记录一下了。首先讲讲拖拽的思路(只分析水平方向,垂直方向类似): 首先...

  • react实现拖拽容器边框改变容器宽度

    大概是想要这么个效果(只能拖拽中间的线条 拖动其他无效): 怎么实现这个效果呢?原生js中已经提供了相应的api:...

  • 原生JS实现拖拽照片墙效果

    先附上一张效果图,里面的图片是我从虽虽酱的微博上扒下来。刚好做九宫格效果图,记录下来也是为了让自己能理解的更深刻,...

  • 原生js实现拖拽

    onmousedown,onmousemove,onmouseup 先看js代码.static定位:positio...

网友评论

      本文标题:原生JS实现拖拽条效果

      本文链接:https://www.haomeiwen.com/subject/ochaehtx.html