基于JS實(shí)現(xiàn)彈性漂浮廣告的示例代碼
效果圖

1.功能(鼠標(biāo)移入移出事件、點(diǎn)擊事件、定時(shí)器控制移動(dòng))
div實(shí)現(xiàn)在頁(yè)面上移動(dòng),并判斷碰到頁(yè)面邊框反彈,鼠標(biāo)移入div停止移動(dòng),鼠標(biāo)移出div進(jìn)行移動(dòng),點(diǎn)擊div讓它從頁(yè)面消失,定時(shí)器控制它的移動(dòng)。
2.div初始樣式設(shè)置
//div(廣告)獲取節(jié)點(diǎn)
var div1 = document.getElementById("div1");
// div(廣告)初始的位置
var offsetx = 0;
var offsety = 0;
//div(廣告)每次移動(dòng)的距離
var stepx = 10;
var stepy = 10;
//div(廣告)的大小
div1.style.width="100px"
div1.style.height="100px"
//設(shè)置定位
div1.style.position="absolute"
div1.style.top = offsetx;
div1.style.left = offsety;
//廣告圖片
div1.style.backgroundImage="url(./img/ggao.webp)"
div1.style.backgroundSize="cover"
3.獲取div可以移動(dòng)的頁(yè)面大小
//網(wǎng)頁(yè)可視化寬高--div(廣告)可以移動(dòng)的區(qū)域
var seeWidth = document.documentElement.clientWidth;
var seeHeight = document.documentElement.clientHeight;
//div(廣告)最大可移動(dòng)的寬度、高度
var maxLeft = seeWidth -100;
var maxTop = seeHeight -100;
4.定時(shí)器控制移動(dòng),鼠標(biāo)移入事件停止移動(dòng),鼠標(biāo)移出繼續(xù)移動(dòng)。
//啟動(dòng)定時(shí)器
? ? ? ? var t= setInterval(move,30);
? ? ? ? //鼠標(biāo)移入清除定時(shí)器
? ? ? ? div1.onmouseenter = function(){
? ? ? ? ? ? clearInterval(t);
? ? ? ? }
? ? ? ? //鼠標(biāo)移出恢復(fù)
? ? ? ? div1.onmouseleave = function(){
? ? ? ? ? ? t = setInterval(move,30);
? ? ? ? }5.點(diǎn)擊事件點(diǎn)擊讓div消失
//點(diǎn)擊事件,點(diǎn)擊后消失
? ? ? ? div1.onclick = function(){
? ? ? ? ? ? div1.style.display = "none"
? ? ? ? }?6.完整代碼
<div id="div1"> ?</div>
<body>
? ? <script>
? ? ? ? //div(廣告)獲取節(jié)點(diǎn)
? ? ? ? var div1 = document.getElementById("div1");
? ? ? ? // div(廣告)初始的位置
? ? ? ? var offsetx = 0;
? ? ? ? var offsety = 0;
? ? ? ? //div(廣告)每次移動(dòng)的距離
? ? ? ? var stepx = 10;
? ? ? ? var stepy = 10;
? ? ? ? //div(廣告)的大小
? ? ? ? div1.style.width="100px"
? ? ? ? div1.style.height="100px"
? ? ? ? //設(shè)置定位
? ? ? ? div1.style.position="absolute"
? ? ? ? div1.style.top = offsetx;
? ? ? ? div1.style.left = offsety;
? ? ? ? // div1.style.backgroundColor="black"
? ? ? ? div1.style.backgroundImage="url(./img/ggao.webp)"
? ? ? ? div1.style.backgroundSize="cover"
? ? ? ??
? ? ? ? //網(wǎng)頁(yè)可視化寬高--div(廣告)可以移動(dòng)的區(qū)域
? ? ? ? var seeWidth = document.documentElement.clientWidth;
? ? ? ? var seeHeight = document.documentElement.clientHeight;
? ? ? ? //div(廣告)最大可移動(dòng)的寬度、高度
? ? ? ? var maxLeft = seeWidth -100;
? ? ? ? var maxTop = seeHeight -100;
? ? ? ? function move(){
? ? ? ? ? ? offsetx+=stepx;
? ? ? ? ? ? offsety+=stepy;
? ? ? ? ? ? console.log(offsetx);
? ? ? ? ? ? console.log(offsety)
? ? ? ? ? ? //大于可移動(dòng)的高度或到達(dá)頂部 就讓移動(dòng)的距離變?yōu)樗呢?fù)數(shù)
? ? ? ? ? ? if(offsety>=maxTop||offsety<=0){
? ? ? ? ? ? ? ? stepy = -stepy;
? ? ? ? ? ? }
? ? ? ? ? ? //大于可移動(dòng)的寬度或到達(dá)最左 就讓移動(dòng)的距離變?yōu)樗呢?fù)數(shù)
? ? ? ? ? ? if(offsetx>=maxLeft||offsetx<=0){
? ? ? ? ? ? ? ? stepx=-stepx;
? ? ? ? ? ? }
? ? ? ? ? ? //div定位的位置
? ? ? ? ? ? div1.style.top = offsety+"px"
? ? ? ? ? ? div1.style.left = offsetx+"px"
? ? ? ? }
? ? ? ? //啟動(dòng)定時(shí)器
? ? ? ? var t= setInterval(move,30);
? ? ? ? //鼠標(biāo)移入清除定時(shí)器
? ? ? ? div1.onmouseenter = function(){
? ? ? ? ? ? clearInterval(t);
? ? ? ? }
? ? ? ? //鼠標(biāo)移出恢復(fù)
? ? ? ? div1.onmouseleave = function(){
? ? ? ? ? ? t = setInterval(move,30);
? ? ? ? }
? ? ? ? //點(diǎn)擊事件,點(diǎn)擊后消失
? ? ? ? div1.onclick = function(){
? ? ? ? ? ? div1.style.display = "none"
? ? ? ? }?
? ? </script>到此這篇關(guān)于基于JS實(shí)現(xiàn)彈性漂浮廣告的示例代碼的文章就介紹到這了,更多相關(guān)JS彈性漂浮廣告內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js 數(shù)組 find,some,filter,reduce區(qū)別詳解
區(qū)分清楚Array中filter、find、some、reduce這幾個(gè)方法的區(qū)別,根據(jù)它們的使用場(chǎng)景更好的應(yīng)用在日常編碼中。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
深入剖析JavaScript instanceof 運(yùn)算符
這篇文章主要介紹了深入剖析JavaScript instanceof 運(yùn)算符,ECMAScript 引入了另一個(gè) Java 運(yùn)算符 instanceof 來(lái)解決這個(gè)問(wèn)題。instanceof 運(yùn)算符與 typeof 運(yùn)算符相似,用于識(shí)別正在處理的對(duì)象的類型。,需要的朋友可以參考下2019-06-06
淺談JavaScript的innerWidth與innerHeight
下面小編就為大家?guī)?lái)一篇淺談JavaScript的innerWidth與innerHeight。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
JavaScript實(shí)現(xiàn)可終止輪詢請(qǐng)求的方法
輪詢請(qǐng)求就是間隔相同的時(shí)間(如5s)后不斷地向服務(wù)端發(fā)起同一個(gè)接口的請(qǐng)求,當(dāng)然不能無(wú)限次去請(qǐng)求,所以輪詢必須要有個(gè)停止輪詢的機(jī)制,今天通過(guò)本文給大家介紹JavaScript實(shí)現(xiàn)可終止的輪詢請(qǐng)求,感興趣的朋友一起看看吧2022-06-06
JS中如何實(shí)現(xiàn)點(diǎn)擊a標(biāo)簽返回頁(yè)面頂部的問(wèn)題
這篇文章主要介紹了JS中實(shí)現(xiàn)點(diǎn)擊a標(biāo)簽返回頁(yè)面頂部的問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-01-01
JavaScript隨機(jī)打亂數(shù)組順序之隨機(jī)洗牌算法
這篇文章主要介紹了JavaScript隨機(jī)打亂數(shù)組順序之隨機(jī)洗牌算法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
bootstrap 下拉多選框進(jìn)行多選傳值問(wèn)題代碼分析
項(xiàng)目開發(fā)遇到個(gè)問(wèn)題,就是引入bootstrap下拉多選框進(jìn)行多選的時(shí)候,用form表單提交到后臺(tái),獲取不到多選的值,只能獲取的選擇的第一個(gè)值,怎么回事呢?下面小編給大家分析下bootstrap 下拉多選框進(jìn)行多選傳值問(wèn)題,一起看看吧2017-02-02

