js用滚动条模拟横向时间轴

  1. 原理是通过设置时间轴盒子overflow-x: scroll;横向溢出的时候出现滚动条; (同理,制作纵向时间轴则设置overflow-y: scroll)
  2. 在时间轴盒子外层再包裹一个固定大小的div,该盒子高度要比时间轴的盒子高度小20px,设置overflow:hidden,则可以隐藏掉时间轴盒子出现的滚动条;
css代码:
.car-time-bar{
    width: 885px;
    height: 220px;
    margin: 22px 24px;
    padding: 0 16px;
    position: relative;
    overflow: hidden;
}
.car-time-bar-content{
    width: 885px;
    height: 240px;
    overflow-x: scroll;
    overflow-y: hidden;
    white-space: nowrap;
}

/* 时间轴左右两侧分别放置两个按钮 点击左划和点击右划 */
.nv_lf{
    width: 16px;
    height: 22px;
    background: url("../img/time_bar_l.png") no-repeat;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -11px;
}
.nv_rt{
    width: 16px;
    height: 22px;
    background: url("../img/time_bar_r.png") no-repeat;
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -11px;
}

样式的部分不多赘述,每一份设计稿设计都不一致,主要是理解方法

时间轴滑动的原理是通过点击按钮控制滚动条滚动,使用setInterval模拟实现平滑滚动;
js代码如下:

    var nvLf = $('左划按钮id'),
        nvRg = $('右划按钮id'),
        timeBar = document.getElementById('时间轴盒子id');
    nvLf.on('click',function () {
        var times = 0;
        var leftScroll = setInterval(function () {
            var leftLen = timeBar.scrollLeft;
            var step = leftLen - 10;
            timeBar.scrollLeft = step;
            times += 1;
            if(times == 18){
                clearInterval(leftScroll);
            }
        },1);
    });
    nvRg.on('click',function () {
        var times = 0;
        var leftScroll = setInterval(function () {
            var leftLen = timeBar.scrollLeft;
            var step = leftLen + 10;
            timeBar.scrollLeft = step;
            times += 1;
            if(times == 18){
                clearInterval(leftScroll);
            }
        },1);
    });

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值