侧边栏壁纸
  • 累计撰写 57 篇文章
  • 累计创建 23 个标签
  • 累计收到 4 条评论

50projects50days知识点-26-double-vertical-slider

cluski
2023-03-28 / 0 评论 / 0 点赞 / 119 阅读 / 296 字
温馨提示:
本文最后更新于 2023-03-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

    示例网址:

    https://50projects50days.com/projects/double-vertical-slider/
    http://50projects.tc.cluski.top/50projects50days/double-vertical-slider/

    效果:

    double-vertical-slider

    思路:

    排版上限制左边的宽度为35%,右边为65%。使用绝对定位让左右两个容器拖标,右边的元素需要使用right: 35%来右移一段距离。同时,使用overflow: hidden来将溢出主容器的给隐藏掉。

    因为是多出画面的是隐藏掉的,所以在按动上下按钮之后,给左右容器分别一个transform属性,即可进行画面的切换了。

    const sliderContainer = document.querySelector('.slider-container')
    const rightSliceEl = document.querySelector('.right-slide');
    const leftSliceEl = document.querySelector('.left-slide');
    const upBtn = document.querySelector('.up-button');
    const downBtn = document.querySelector('.down-button');
    const sliceLength = rightSliceEl.children.length
    
    leftSliceEl.style.top = `-${(sliceLength - 1) * 100}vh`
    
    let num = 0
    
    upBtn.addEventListener('click', () => {
        const sliderHeight = sliderContainer.clientHeight
        num++
        if (num >= 4) {
            num = 0
        }
        leftSliceEl.style.transform = `translateY(${num * sliderHeight}px)`
        rightSliceEl.style.transform = `translateY(-${num * sliderHeight}px)`
    })
    
    downBtn.addEventListener('click', () => {
        const sliderHeight = sliderContainer.clientHeight
        num--
        if (num < 0) {
            num = 3
        }
        leftSliceEl.style.transform = `translateY(${num * sliderHeight}px)`
        rightSliceEl.style.transform = `translateY(-${num * sliderHeight}px)`
    })
    
    

    ❗ 这里使用了sliderContainer.clientHeight来获取可视区域的高度。

    0

    评论区