前端廣告漂浮窗 來回跑動(dòng) js

var?xin?=?true,?yin?=?true;

var?step?=?1;

var?delay?=?40;

var?$obj?=?document.getElementById("ad")

var?adTime?=?null;

var?runFlag?=?false;

function?clearAdTime()?{

??if?(adTime)?{

????clearInterval(adTime)

????adTime?=?null

??}

}

runFlag?=?true

clearAdTime()

adTime?=?window.setInterval("move()",?delay);

$obj.onmousemove?=?function()?{

??runFlag?=?false

??clearAdTime()

}

$obj.onmouseout=function?()?{

??clearAdTime()

??runFlag?=?true

??adTime?=?window.setInterval("move()",?delay)

};

function?closeAd?()?{

??clearAdTime()

??$obj.style.display?=?'none'

}

function?move()?{

??if?(!runFlag)?return

??var?left?=?$obj.offsetLeft;

??var?top?=?$obj.offsetTop;

??var?L?=?T?=?0;?//左邊界和頂部邊界

??var?R?=?window.innerWidth?-?$obj.offsetWidth;?//?右邊界

??var?B?=?window.innerHeight?-?$obj.offsetHeight;?//下邊界

??//難點(diǎn):怎樣判斷廣告的4個(gè)邊框有沒有超出可視化范圍!

??if?(left?<?L)?{

????xin?=?true;?//?水平向右移動(dòng)

??}

??if?(left?>?R)?{

????xin?=?false;

??}

??if?(top?<?T)?{

????yin?=?true;

??}

??if?(top?>?B)?{

????yin?=?false;

??}

??//根據(jù)有沒有超出范圍來確定廣告的移動(dòng)方向

??left?+=?step?*?(xin?==?true???1?:?-1);

??top?+=?step?*?(yin?==?true???1?:?-1);

??//?給div?元素重新定位

??$obj.style.top?=?top?+?'px';

??$obj.style.left?=?left?+?'px';

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容