一段关于滚动至顶部和tab标签切换的js代码

无名氏 WEB前端, 网站开发 1,245 次浏览 , , 没有评论
function Show_TabADSMenu(num,tabadid_num,tabadnum){

        for(var i=0;i<num ;i++){document.getElementById("tabadcontent_"+tabadid_num+i).style.display="none";}

        for(var i=0;i<num;i++){document.getElementById("tabadmenu_"+tabadid_num+i).className="";}

        document.getElementById("tabadmenu_"+tabadid_num+tabadnum).className="TasADSOn";

        document.getElementById("tabadcontent_"+tabadid_num+tabadnum).style.display="block";

}



/**

 * 回到页面顶部

 * @param acceleration 加速度

 * @param time 时间间隔 (毫秒)

 **/


function goTop(acceleration, time) {

        acceleration = acceleration || 0.1;

        time = time || 16;

 

        var x1 = 0;

        var y1 = 0;

        var x2 = 0;

        var y2 = 0;

        var x3 = 0;

        var y3 = 0;

 

        if (document.documentElement) {

                x1 = document.documentElement.scrollLeft || 0;

                y1 = document.documentElement.scrollTop || 0;

        }

        if (document.body) {

                x2 = document.body.scrollLeft || 0;

                y2 = document.body.scrollTop || 0;

        }

        var x3 = window.scrollX || 0;

        var y3 = window.scrollY || 0;

 

        // 滚动条到页面顶部的水平距离

        var x = Math.max(x1, Math.max(x2, x3));

        // 滚动条到页面顶部的垂直距离

        var y = Math.max(y1, Math.max(y2, y3));

 

        // 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于 1 的数, 所以滚动距离会越来越小

        var speed = 1 + acceleration;

        window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));

 

        // 如果距离不为零, 继续调用迭代本函数

        if(x > 0 || y > 200) {  //滚动至顶部的距离

                var invokeFunction = "goTop(" + acceleration + ", " + time + ")";

                window.setTimeout(invokeFunction, time);

        }

}
</num>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go