溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

jQuery實(shí)現(xiàn)碰到邊緣反彈的動(dòng)畫(huà)效果

發(fā)布時(shí)間:2020-10-22 00:50:36 來(lái)源:腳本之家 閱讀:212 作者:站住,別跑 欄目:web開(kāi)發(fā)

先上效果圖:

jQuery實(shí)現(xiàn)碰到邊緣反彈的動(dòng)畫(huà)效果

錄出來(lái)有點(diǎn)卡頓的趕腳,實(shí)際上還是挺順暢的。

1.HTML:

<div class="box"></div>

2.CSS:

body{
   background:skyblue  
}
.box{
  position: absolute;
  top: 10px;
  left: 10px;
  width: 100px;
  height: 100px;
  background: white;
}

3.JS:

$(function(){
  var obj=$(".box");
  var x=obj.offset().left;//盒子距離左部的位置
  var y=obj.offset().top;//盒子距離頂部的位置
  var objwid=obj.width();//盒子的寬
  var objhei=obj.height();
  var winwid=$(window).width();//頁(yè)面的寬
  var winhei=$(window).height();
  var max=10;//設(shè)置最大視覺(jué)差,就是感覺(jué)這個(gè)距離剛好碰到
  var winx=winwid-objwid-max;//盒子x軸最遠(yuǎn)達(dá)到的距離
  var winy=winhei-objhei-max;//盒子y軸最遠(yuǎn)達(dá)到的距離
  var sx=0;//x軸是否返回的狀態(tài),0是值++即正向移動(dòng),1是值--即返回
  var sy=0;
  time1=setInterval(function(){
    if(sx==0){
      obj.css("left",x++);
    }else if(sx==1){
      obj.css("left",x--);
    }
    if(x<=0){
      sx=0;
    }else if(x>=winx){
      sx=1;
    }
    if(sy==0){
      obj.css("top",y++);
    }else if(sy==1){
      obj.css("top",y--);
    }
    if(y<=0){
      sy=0;
    }else if(y>=winy){
      sy=1;
    }
  },1)
})

這里只是簡(jiǎn)單的效果,由此可引發(fā)多個(gè)問(wèn)題:

1)如果多個(gè)方塊出現(xiàn),頁(yè)面會(huì)不會(huì)卡頓呢?

2)如果要實(shí)現(xiàn)多個(gè)方塊碰撞之后改變運(yùn)動(dòng)的位置,這個(gè)怎么做呢?

3)方塊的初始位置能不能隨機(jī)呢?

4)多個(gè)方塊的速度怎樣設(shè)置不一樣呢

5)能不能做一個(gè)彈方塊的小游戲?

總結(jié)

以上所述是小編給大家介紹的jQuery實(shí)現(xiàn)碰到邊緣反彈的動(dòng)畫(huà)效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI