React滑块拖拽(移动端)

这篇博客展示了如何使用React来实现移动端的滑块拖拽功能。通过监听touch事件,计算滑动距离并更新元素位置,实现了滑块的拖动效果。HTML和CSS用于创建滑块的外观,而JavaScript部分则是React组件的实现,包括事件处理函数FnStart, FnMove和FnEnd。" 116398678,7601671,机器学习中的函数求导解析,"['机器学习', '数学基础', '优化算法', '微积分']

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

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>滑块拖拽移动端2</title>

    <script src="./js/browser.js"></script>

    <script src="./js/react.js"></script>

    <script src="./js/react-dom.js"></script>

    <style>

        .box {

            position: absolute;

            top: 20px;

            height: 20px;

            width: 60px;

            height: 60px;

            background-color: palevioletred;

            border-radius: 50%;

        }

    </style>

</head>

<body>

    <div id="add"></div>

</body>

<script type="text/babel">

    class Drag extends React.Component {

        constructor(...arge) {

            super(...arge);

        }

        FnStart(ev) {

            this.Touch = ev.changedTouches[0];

            this.startX = this.Touch.pageX -  ev.target.offsetLeft;

            this.startY = this.Touch.pageY -  ev.target.offsetTop;

            document.ontouchmove = this.FnMove.bind(this);

            document.ontouchend = this.FnEnd.bind(this);

        }

        FnMove(ev) {

            this.Touch = ev.changedTouches[0];

            this.X = this.Touch.pageX - this.startX;

            this.Y = this.Touch.pageY - this.startY;

            ev.target.style.left = this.X + 'px';

            ev.target.style.top = this.Y + 'px';

        }

        

        FnEnd(ev) {

            document.ontouchmove = null;

            document.ontouchend = null;

        }

        render() {

            return (

                <div className="box" onTouchStart={this.FnStart.bind(this)}></div>

            )

        }

    }

    ReactDOM.render(<Drag />, document.querySelector("#add"))

</script>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值