$("").animate 的高级应用。
时间:2009-09-27
来源:互联网
问一下儿,写了一个弹出层的效果,但是有个小问题。
这个层每次出来的时候都是从左上角 top:0 left:0 的位置‘滑动’出来的,要怎么写才能让这个层,从被触发的位置滑动出来?
比如我定义了一个页面中的任意一个位置,然后点击这个位置的时候,就从这个位置‘滑动’出来。
------
<script type="text/javascript" src="../Common/Js/jquery-1.3.2.js"></script>
<script type="text/javascript">
function popupDiv(div_id)
{
var div_obj = $("#"+div_id);
//窗口宽高
var windowWidth = document.body.clientWidth;
var windowHeight = document.body.clientHeight;
//弹出层宽高
var popupHeight = div_obj.height();
var popupWidth = div_obj.width();
//目标位置
var btn= $("#btnTest");
var Coordinate= $("#btnTest").offset();
//添加并显示遮罩层
// $("<div id='mask'></div>").addClass("mask")
// .width(windowWidth + document.body.scrollWidth)
// .height(windowHeight + document.body.scrollHeight)
// .click(function() {hideDiv(div_id); })
// .appendTo("body")
// .fadeIn(200);
//显示层,可以自定义层
div_obj.css({"position": "absolute"})
.animate(
{
left: Coordinate.left + btn.width() + 3,
top: Coordinate.top + btn.height() + 3,
opacity: "show"
}, "slow");
}
function hideDiv(div_id) {
$("#mask").remove();
$("#" + div_id).animate({left: 0, top: 0, opacity: "hide" }, "slow");
}
</script>
------
<body>
<form id="form1" runat="server">
<div id='pop-div' style="width: 300px;" class="pop-box">
<h4>
标题位置</h4>
<div class="pop-box-body">
<p>
正文内容
</p>
<input id="btnClose" type="button" onclick="hideDiv('pop-div');" value="关闭" />
</div>
</div>
<input type="button" id="btnTest" value='test' onclick="popupDiv('pop-div');" />
<select id="slt">
<option value="1">1</option>
</select>
</form>
</body>
这个层每次出来的时候都是从左上角 top:0 left:0 的位置‘滑动’出来的,要怎么写才能让这个层,从被触发的位置滑动出来?
比如我定义了一个页面中的任意一个位置,然后点击这个位置的时候,就从这个位置‘滑动’出来。
------
<script type="text/javascript" src="../Common/Js/jquery-1.3.2.js"></script>
<script type="text/javascript">
function popupDiv(div_id)
{
var div_obj = $("#"+div_id);
//窗口宽高
var windowWidth = document.body.clientWidth;
var windowHeight = document.body.clientHeight;
//弹出层宽高
var popupHeight = div_obj.height();
var popupWidth = div_obj.width();
//目标位置
var btn= $("#btnTest");
var Coordinate= $("#btnTest").offset();
//添加并显示遮罩层
// $("<div id='mask'></div>").addClass("mask")
// .width(windowWidth + document.body.scrollWidth)
// .height(windowHeight + document.body.scrollHeight)
// .click(function() {hideDiv(div_id); })
// .appendTo("body")
// .fadeIn(200);
//显示层,可以自定义层
div_obj.css({"position": "absolute"})
.animate(
{
left: Coordinate.left + btn.width() + 3,
top: Coordinate.top + btn.height() + 3,
opacity: "show"
}, "slow");
}
function hideDiv(div_id) {
$("#mask").remove();
$("#" + div_id).animate({left: 0, top: 0, opacity: "hide" }, "slow");
}
</script>
------
<body>
<form id="form1" runat="server">
<div id='pop-div' style="width: 300px;" class="pop-box">
<h4>
标题位置</h4>
<div class="pop-box-body">
<p>
正文内容
</p>
<input id="btnClose" type="button" onclick="hideDiv('pop-div');" value="关闭" />
</div>
</div>
<input type="button" id="btnTest" value='test' onclick="popupDiv('pop-div');" />
<select id="slt">
<option value="1">1</option>
</select>
</form>
</body>
作者: fengmq 发布时间: 2009-09-27
真是不敢恭维亚,貌似高手不多呀!
作者: fengmq 发布时间: 2009-09-27
问题解决了,原来用一个 event.clientX 就可以将 animate ‘滑动’效果的起始坐标定位到当前鼠标点击时的位置了。
自己的问题,自己解答!呵呵
自己的问题,自己解答!呵呵
作者: fengmq 发布时间: 2009-09-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28