suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Erstellen Sie ziehbare Kugellinien in React JS

Ich habe ein Video von einem ziehbaren Ball online. Ich muss diese Funktionalität in React Js implementieren. Der Ball kann über die Linie gezogen und überquert werden Nachdem Sie den Schläger losgelassen haben, kehrt der Schläger nicht in seine ursprüngliche Position zurück.

Ich habe mehrere Codes und Methoden ausprobiert, aber keiner davon hat wie nötig funktioniert. Ich brauche Hilfe beim Erstellen einer solchen Funktionalität in React. Wenn jemand weiß, wie das geht, helfen Sie mir bitte.

const Ball = ({ color, onDragStart, onDragOver, onDrop }) => (
       <div
         className="ball"
         draggable
         onDragStart={onDragStart}
         onDragOver={onDragOver}
         onDrop={onDrop}
         style={{ backgroundColor: color }}
      />
     );


     import React, { useState } from 'react';
     import Ball from './Ball';

     const colors = ['red', 'blue', 'green', 'yellow'];

     const Line = () => {
     const [balls, setBalls] = useState(colors);

     const onDragStart = (e, index) => {
     e.dataTransfer.setData('index', index);
      };

      const onDragOver = (e) => {
      e.preventDefault();
      };

      const onDrop = (e, index) => {
    const droppedIndex = e.dataTransfer.getData('index');
    const newBalls = [...balls];
    newBalls.splice(droppedIndex, 1);
    newBalls.splice(index, 0, colors[droppedIndex]);
    setBalls(newBalls);
  };

  return (
    <div className="line">
      {balls.map((color, index) => (
        <Ball
          key={index}
          color={color}
          onDragStart={(e) => onDragStart(e, index)}
          onDragOver={onDragOver}
          onDrop={(e) => onDrop(e, index)}
        />
      ))}
    </div>
  );
};

Dieser Code funktioniert nicht.

P粉448130258P粉448130258449 Tage vor507

Antworte allen(1)Ich werde antworten

  • P粉464113078

    P粉4641130782023-09-08 11:17:46

    const Ball = ({ color, onDragStart, onDragOver, onDrop }) => (
           <div
             className="ball"
             draggable
             onDragStart={onDragStart}
             onDragOver={onDragOver}
             onDrop={onDrop}
             style={{ backgroundColor: color }}
          />
         );
    
    
         import React, { useState } from 'react';
         import Ball from './Ball';
    
         const colors = ['red', 'blue', 'green', 'yellow'];
    
         const Line = () => {
         const [balls, setBalls] = useState(colors);
    
         const onDragStart = (e, index) => {
         e.dataTransfer.setData('index', index);
          };
    
          const onDragOver = (e) => {
          e.preventDefault();
          };
    
          const onDrop = (e, index) => {
        const droppedIndex = e.dataTransfer.getData('index');
        const newBalls = [...balls];
        newBalls.splice(droppedIndex, 1);
        newBalls.splice(index, 0, colors[droppedIndex]);
        setBalls(newBalls);
      };
    
      return (
        <div className="line">
          {balls.map((color, index) => (
            <Ball
              key={index}
              color={color}
              onDragStart={(e) => onDragStart(e, index)}
              onDragOver={onDragOver}
              onDrop={(e) => onDrop(e, index)}
            />
          ))}
        </div>
      );
    };

    Antwort
    0
  • StornierenAntwort