js to progress bar

本文介绍了一种基于jQuery的拖拽效果实现方案,通过简单的HTML结构配合CSS样式和JavaScript交互,实现了可在限定区域内自由拖动的点状元素。此方案适用于需要用户手动调整参数或进行简单互动的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<img src="https://img-blog.csdn.net/20161011111950302?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>drag</title>
    <style>
        .drag {
            margin: 0 auto;
            width: 300px;
            position: relative;
            border-radius: 5px;
            background: yellowgreen;
            height: 10px;
        }

        .point {
            display: block;
            width: 20px;
            height: 20px;
            border-radius: 20px;
            background: orangered;
            position: absolute;
            left: -10px;
            top: -5px;
        }
    </style>
</head>
<body>
<div class="drag" id="wrap_drag">
    <span class="point" id="drag_point"></span>
</div>

<script src="//cdn.bootcss.com/jquery/3.1.1/jquery.js"></script>
<script>
    $(function () {
        var dragPoint = $('#drag_point');
        var dragWrap = $('#wrap_drag');
        var wrap_x = dragWrap.offset().left;
        var dragPointWidth = parseInt(dragPoint.css('width')) / 2;
        var wrapWidth = parseInt($('#wrap_drag').css('width'));
        var maxOffset = wrapWidth - dragPointWidth;
        var minOffset = -dragPointWidth;
        dragPoint.bind('mousedown', function (event) {
            /* get drag ele x-y */
            var offset_x = $(this)[0].offsetLeft;//x坐标
            console.log(offset_x + 'offsetx的位置')
            var offset_y = $(this)[0].offsetTop;//y坐标
            /* get current x-y */
            var mouse_x = event.pageX;
            var mouse_y = event.pageY;
            /* 由于拖动时,可能鼠标会移出元素,所以应该使用全局(document)元素 */
            $(document).bind("mousemove", function (ev) {
                var _x = ev.pageX - mouse_x;
                var _y = ev.pageY - mouse_y;
                var now_x = (offset_x + _x ) + "px";
                var pos = parseInt(now_x);
                if (pos > maxOffset) {
                    pos = maxOffset;
                }
                if (pos < minOffset) {
                    pos = minOffset;
                }
                console.info('打印point滑动球left值' + pos);
                dragPoint.css({
                    //  top:now_y,
                    left: pos + 'px'
                });
            });
        });
        $(document).bind("mouseup", function () {
            $(this).unbind("mousemove");
        });
    });
</script>
</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值