Wie simuliere ich Touch-Scrolling durch Greifen und Ziehen der Maus?-Fragen und Antworten zum chinesischen PHP-Netzwerk
Wie simuliere ich Touch-Scrolling durch Greifen und Ziehen der Maus?
P粉071626364
P粉071626364 2023-08-26 13:40:28
0
1
369

Hier ist ein minimales Beispiel dafür, was ich zu tun versuche:


      #Kasten { Hintergrundfarbe: rot; Breite: 200px; Höhe: 250px; Überlauf-x: versteckt; overflow-y: scrollen; Cursor: greifen; } #box div { Hintergrundfarbe: blau; Rand: 30px; Breite: 100px; Höhe: 100px; }  
  


Wenn Sie ein mobiles Gerät verwenden, können Sie durch das #box scrollen, indem Sie es berühren und nach oben oder unten ziehen. Wenn Sie jedoch einen Desktop-Browser verwenden, müssen Sie die Bildlaufleisten oder Ihr Mausrad verwenden.

Wie aktiviere ich das Scrollen, indem ich greife (d. h. die linke Maustaste gedrückt halte) und dann nach oben oder unten ziehe (d. h. die Maus bewege)? Kann ich dieses Problem nur mit CSS lösen?

P粉071626364
P粉071626364

Antworte allen (1)
P粉714780768

仅使用 CSS 无法解决此问题,但可以使用 javascript 解决。我为你做了一个可以水平和垂直工作的实现。还可以更改滚动速度。

const box = document.getElementById('box'); let isDown = false; let startX; let startY; let scrollLeft; let scrollTop; box.addEventListener('mousedown', (e) => { isDown = true; startX = e.pageX - box.offsetLeft; startY = e.pageY - box.offsetTop; scrollLeft = box.scrollLeft; scrollTop = box.scrollTop; box.style.cursor = 'grabbing'; }); box.addEventListener('mouseleave', () => { isDown = false; box.style.cursor = 'grab'; }); box.addEventListener('mouseup', () => { isDown = false; box.style.cursor = 'grab'; }); document.addEventListener('mousemove', (e) => { if (!isDown) return; e.preventDefault(); const x = e.pageX - box.offsetLeft; const y = e.pageY - box.offsetTop; const walkX = (x - startX) * 1; // Change this number to adjust the scroll speed const walkY = (y - startY) * 1; // Change this number to adjust the scroll speed box.scrollLeft = scrollLeft - walkX; box.scrollTop = scrollTop - walkY; });
#box { background-color: red; width: 200px; height: 250px; overflow-x: hidden; overflow-y: scroll; } #box div { background-color: blue; margin: 30px; width: 100px; height: 100px; }
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!