如何使用jQuery实现图层全屏浮动效果?
关键技术点
注意设定图层的定位类型
使用计时器方法 window.setInterval()
定义图层的移动方法
css设置
<style>
#Div
{
position: fixed;
left: 0;
top: 0;
z-index: 99;
}
</style>设置div图层定位类型fixed 定位 即元素的位置相对于浏览器窗口是固定位置。
html设置
<div id="Div">
<div id="clo">
×
</div>
<div style="width: 220px; background: #b8a9d4; padding: 20px;">
<a href="#" target="_blank">
<img src="images/move.png" />
</a>
</div>
</div>设置容易id=Div 定义一个关闭图层 定义id=clo
主要js代码与解析
<script type="text/javascript">
var xin = true, yin = true;
var step = 0.5; //0.5px
var delay = 10; //10毫秒
var $obj;
$(function () {
$obj = $("#Div");
//每10毫秒调用一次move()方法
var time = window.setInterval("move()", delay);
//鼠标移出
$obj.mouseover(function () {
//清空计时器
clearInterval(time)
});
//鼠标移入
$obj.mouseout(function () {
//每10毫秒调用一次move()方法
time = window.setInterval("move()", delay)
});
});
//图层移动方法
function move() {
var left = $obj.offset().left; //获取左坐标
var top = $obj.offset().top; //获取上坐标
var L = T = 0; //左边界和顶部边界
var R = $(window).width() - $obj.width(); // 右边界
var B = $(window).height() - $obj.height(); //下边界
if (left < L) {
xin = true; // 水平向右移动
}
if (left > R) {
xin = false; // 水平向左移动
}
if (top < T) {
yin = true; // 垂直向下移动
}
if (top > B) {
yin = false; // 垂直向上移动
}
left = left + step * (xin == true ? 1 : -1);
top = top + step * (yin == true ? 1 : -1);
// 重新定位
$obj.offset({
top: top,
left: left
})
}
//关闭容器图层
$(function () {
$("#clo").click(function () {
$("#clo").parent().remove();
})
})
</script>
