JavaScript 实现上下循环滚动

实现一个图片或者div在屏幕的上下间循环滚动

实现原理:通过获取当前位置距离页面浏览器可见区域的距离来执行往上还是往下的操作。

实现步骤

1、获取当前浏览器的可见区域的高度

var vh=window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
function $(id) {
   return typeof id == "string"?document.getElementById(id):id;
}
var move1 = $('ido_move1');

2、因为div 元素的高度是200px,所以判断是够到底层的时候,距离页面上面的距离应该是vh - 200

 function GoUp1(){
    function moveUp1() {
        var bot = move1.style.marginTop ? move1.style.marginTop : (vh - 200);
        bot = parseInt(bot) - 1;
        move1.style.marginTop = bot + "px";
        if(bot == 0){
            clearInterval(tempUp1);
            GoDown1();
        }
    }
    var tempUp1 = setInterval(moveUp1,25);
}

function GoDown1() {
    function moveDown1() {
        var top = move1.style.marginTop ? move1.style.marginTop : 0;
        top = parseInt(top) + 1;
        move1.style.marginTop = top + "px";
        if(top == (vh - 200)){
            clearInterval(tempDown1);
            GoUp1();
        }
    }
    var tempDown1 = setInterval(moveDown1,25);
}

利用setInterval()方法的特性,setInterval ()方法一般用作动画循环或者时间计时器等场景。因为setInterval()方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。而且setInterval()方法会不停地调用函数,知道调用clearInterval()清除或关闭定时器,才停止执行。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值