本文详细介绍如何使用JavaScript实现页面上的弹性漂浮广告效果。通过获取DOM元素、设置绝对定位,并利用setInterval定时器控制移动。代码包含鼠标移入移出时的暂停与恢复逻辑,以及点击后元素消失的功能,同时处理了页面边界反弹判断,提供完整的HTML与JS示例代码。
效果图

本示例主要实现以下功能:监听鼠标的移入和移出事件以控制动画状态,响应点击事件使广告消失,以及使用定时器驱动元素的持续移动。
核心逻辑是通过JavaScript控制一个div元素在页面中移动。当该div碰到页面可视区域的边框时,需要判断方向并反弹。交互方面,当鼠标移入div区域时,移动停止;鼠标移出后,恢复移动。此外,点击div元素可使其从页面中消失。整个过程由定时器负责驱动移动逻辑。
首先需要对div元素进行初始样式设置,包括获取节点、设定初始位置、定义移动步长、设置宽高、绝对定位以及背景图片。
//div(广告)获取节点
var div1 = document.getElementById("div1");
// div(广告)初始的位置
var offsetx = 0;
var offsety = 0;
//div(广告)每次移动的距离
var stepx = 10;
var stepy = 10;
//div(广告)的大小
div1.style.width="100px"
div1.style.height="100px"
//设置定位
div1.style.position="absolute"
div1.style.top = offsetx;
div1.style.left = offsety;
//广告图片
div1.style.backgroundImage="url(./img/ggao.webp)"
div1.style.backgroundSize="cover"
代码节选如下:
//网页可视化宽高--div(广告)可以移动的区域
var seeWidth = document.documentElement.clientWidth;
var seeHeight = document.documentElement.clientHeight;
//div(广告)最大可移动的宽度、高度
var maxLeft = seeWidth -100;
var maxTop = seeHeight -100;
接下来需要获取网页可视区域的宽高,从而确定div可以移动的最大范围,即计算最大可移动的left和top值。
//启动定时器
var t= setInterval(move,30);
//鼠标移入清除定时器
div1.onmouseenter = function(){
clearInterval(t);
}
//鼠标移出恢复
div1.onmouseleave = function(){
t = setInterval(move,30);
}相关计算代码如下:
//点击事件,点击后消失
div1.onclick = function(){
div1.style.display = "none"
} 使用setInterval启动定时器控制移动,并通过onmouseenter和onmouseleave事件分别处理鼠标移入和移出时的定时器清除与重启逻辑。
<div id="div1"> </div>
<body>
<script>
//div(广告)获取节点
var div1 = document.getElementById("div1");
// div(广告)初始的位置
var offsetx = 0;
var offsety = 0;
//div(广告)每次移动的距离
var stepx = 10;
var stepy = 10;
//div(广告)的大小
div1.style.width="100px"
div1.style.height="100px"
//设置定位
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"
//网页可视化宽高--div(广告)可以移动的区域
var seeWidth = document.documentElement.clientWidth;
var seeHeight = document.documentElement.clientHeight;
//div(广告)最大可移动的宽度、高度
var maxLeft = seeWidth -100;
var maxTop = seeHeight -100;
function move(){
offsetx+=stepx;
offsety+=stepy;
console.log(offsetx);
console.log(offsety)
//大于可移动的高度或到达顶部 就让移动的距离变为它的负数
if(offsety>=maxTop||offsety<=0){
stepy = -stepy;
}
//大于可移动的宽度或到达最左 就让移动的距离变为它的负数
if(offsetx>=maxLeft||offsetx<=0){
stepx=-stepx;
}
//div定位的位置
div1.style.top = offsety+"px"
div1.style.left = offsetx+"px"
}
//启动定时器
var t= setInterval(move,30);
//鼠标移入清除定时器
div1.onmouseenter = function(){
clearInterval(t);
}
//鼠标移出恢复
div1.onmouseleave = function(){
t = setInterval(move,30);
}
//点击事件,点击后消失
div1.onclick = function(){
div1.style.display = "none"
}
</script>到此这篇关于基于JS实现弹性漂浮广告的示例代码的文章就介绍到这了,更多相关JS弹性漂浮广告内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!