iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0
Modern Web

JS煉金術:Javascript30+聲光玩轉的Drum Pads系列 第 28

[JS30] DAY27 : Click And Drag


[程式碼&DEMO] [HackMD完整筆記]

目標


實作滑鼠點擊後,能夠左右移動捲軸的效果。

步驟流程


STEP1 取得頁面元素與宣告變數

    const slider = document.querySelector('.items');
    let isDown = false;
    let startX;
    let scrollLeft;

STEP2 滑鼠按下事件

slider.addEventListener('mousedown', (e) => {
        isDown = true;
        slider.classList.add('active');
        startX = e.pageX - slider.offsetLeft;
        scrollLeft = slider.scrollLeft;
    });

STEP3 滑鼠移出事件

slider.addEventListener('mouseleave', () => {
       isDown = false;
       slider.classList.remove('active');
   });

STEP4 滑鼠按鍵放開事件

slider.addEventListener('mouseup', () => {
        isDown = false;
        slider.classList.remove('active');
    });

STEP5 滑鼠移動事件

 slider.addEventListener('mousemove', (e) => {
        if(!isDown) return; //stop the fn running
        e.preventDefault();
        const x = e.pageX - slider.offsetLeft;
        const walk = (x - startX);
        slider.scrollLeft = scrollLeft - walk;
    });

上一篇
[JS30]DAY26: Strip Follow Along Nav
下一篇
[JS30] DAY28 : Video speed controller
系列文
JS煉金術:Javascript30+聲光玩轉的Drum Pads30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言