目標
左右移動卷軸,使用滑鼠拖曳來移動左右
處理步驟
目的是拖拉畫面的時候等於移動卷軸,所以需要知道卷軸的 offsetLeft 與滑鼠橫軸位置的 pageX ,計算出滑鼠移動距離後,將卷軸位置重新設定,以達到移動的目的。
步驟 1.
滑鼠點擊的時候,有樣式變換,離開畫面或是按鍵放開就樣式還原,建立 mousedown 、 mouseup 、 mouseleave 等事件,並切換樣式
1 | // 取得最外層的 div items |
步驟 2.
建立滑鼠移動的事件,並判斷滑鼠左鍵未點選時返回
1 | /** |
步驟 3.
宣告變數 startX 紀錄滑鼠目前的 X 軸位置,以及 scrollLeft 卷軸目前的位置;接著計算移動距離與設定
1 | // 紀錄滑鼠點擊的起始位置 |
筆記與備註事項
JavaScript 部分
offsetLeft
取得元素的左邊界的相對值
pageX
由滑鼠事件取得目前游標在畫面上的 X 座標
CSS 部分
perspective
perspective 属性指定了观察者与z=0平面的距离,使具有三维位置变换的元素产生透视效果。z>0的三维元素比正常大,而z<0时则比正常小,大小程度由该属性的值决定。
三维元素在观察者后面的部分不会绘制出来,即z轴坐标值大于perspective属性值的部分。
默认情况下,消失点位于元素的中心,但是可以通过设置perspective-origin属性来改变其位置
資料來源 - MDN
user-select
實驗性功能,控制是否能被選取;
參考資料
- JavaScript 30 day
- 作者 Github Wes Bos
- Js 30 day 中文指南
- 瓜瓜的 JS 30
- 我的 JS 30 練習Github