带有提示文字的滚动条

思路:

  • 首先设计出它的静态样式,为了更合理,应该将底下的文字提示框隐藏起来
  • 大致效果如下:
    在这里插入图片描述
  • 其次利用鼠标事件来完成该案例,需要用到的鼠标事件有:onmousemove(鼠标拖动时触发的事件)、onmousedown(鼠标按下时触发的事件)、onmouseup(鼠标离开时触发的事件)
  • 最后我们需要利用clientX属性先求出滚动条的起始临界X坐标的值,以防止出界
  • 需要注意的是当鼠标按下或者是离开的时候,其滚动条底下的文字提示框都应该隐藏
  • 现在看一下具体做法:
 <style>
        div {
            width: 25px;
            height: 25px;
            border: 1px solid black;
            line-height: 25px;
            text-align: center;
            position: absolute;
            display: none;
        }
</style>
 	<input type="range" min="0" max="100" value="5" />
    <div></div>
<script>
        //获得元素
        var input = document.querySelector('input');
        var div = document.querySelector('div');
        var flag = false;

        //当鼠标拖动时
        input.onmousemove = function() {
            if (flag) {
                // console.log('(x,y):('+event.clientX+','+event.clientY+')');
                //先求出滚动条X轴的起始坐标,以此来作为临界值
                var left = event.clientX;
                if (left > 135) {
                    left = 135;
                }
                if (left < 14) {
                    left = 14;
                }

                div.style.left = left + 'px';
                div.innerHTML = input.value;
                div.style.display = 'block';
            }
        }

        //当鼠标按下时,隐藏底下的文字提示框
        input.onmousedown = function() {
            flag = true;
            //console.log('(x,y):('+event.clientX+','+event.clientY+')');
            div.style.display = 'none';
        }

        //当鼠标松开时,隐藏底下的文字提示框
        input.onmouseup = function() {
            flag = false;
            div.style.display = 'none';
        }
</script>

最终效果图如下:
在这里插入图片描述
当然这个案例做得其实并不是很完善,其中还有很多小毛病,在这里也只是为了巩固自己学的基础知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白小白从不日白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值