利用原生js实现轮播(自动切换+轮播点+左右点击切换)

html文件:





    
    
    
    Document
    
    



    

//引入js文件

move.js:

// 获取非行间样式封装函数
function getStyle(obj, arr) {
    if (obj.currentStyle) {
        return obj.currentStyle[arr];
    } else {
        return getComputedStyle(obj)[arr];
    }
}


//封装运动框架
function move(obj, attr, tag, dir) {
    //利用属性值的大小判断正负
    dir = tag > parseInt(getStyle(obj, attr)) ? dir : -dir;
    clearInterval(obj.timer)
    obj.timer = setInterval(function () {
        //获取obj的非行间attr属性值,赋给一个变量,因为行间的left属性是没有返回值的,要想进行计算,必须利用非行间样式的返回值
        var speed = parseInt(getStyle(obj, attr)) + dir;
        if (speed >= tag && dir > 0 || speed <= tag && dir < 0) {//判断到什么地方停止运动
            clearInterval(obj.timer);//到达目标值时清除定时器
            speed = tag;//让运动对象定格在那个位置
        }
        obj.style[attr] = speed + 'px';//把属性值赋给运动对象
    }, 20)
}

你可能感兴趣的:(web大前端)