gpt4 book ai didi

使用 "position"的 jQuery 动画 DIV

转载 作者:行者123 更新时间:2023-12-01 04:29:06 25 4
gpt4 key购买 nike

我想要动画:

$("#movethis").position({  my: "center top",  at: "center bottom",  of: "#nav1" });

我该怎么做?

...这有点奇怪,我找不到任何例子。

///udpate:找到了解决方法。仍然更愿意执行上述操作,但这就是我得到的:

AnElement = 动态选择正确的元素

theMoverPos = $("#theMover").position().left;
goToPos = $(AnElement).position().left + ($(AnElement).width()/2);
moveTo = goToPos - theMoverPos;
moveTo2 = "+=" + moveTo;
$("#theMover").animate({ left: moveTo2}, 1000);

最佳答案

大编辑

这就是我现在认为你正在尝试做的事情:

you have a horizontal nav, and you want to animate an underline or other flair between the elements when the user clicks on an anchor.

如果这就是您正在寻找的内容,您将需要查看 jQuery animate call .

这是我制作的一个示例页面,它比您制作的要简单一些(它不是用 += 来表示动画,而是设置一个绝对值并在状态之间进行动画处理):

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var startTop = $("#nav1").outerHeight() + $("#nav1").position().top;
var startLeft = $("#nav1").position().left;
$("#underline").attr("style","top: " + startTop + "px; left: " + startLeft + "px;");

$(".navButton").click(function() {
var newPos = $(this).position().left;
$("#underline").animate({left: newPos},"slow");
});
});
</script>
<style type="text/css">
.navButton {
float: left;
clear: none;
margin-right: 10px;
cursor: pointer;
}
#underline {
height: 1px;
border: 1px solid red;
width: 30px;
position: absolute;
}
</style>
</head>
<body>
<div class="navButton" id="nav1">nav 1</div>
<div id="underline"></div>
<div class="navButton" id="nav2">nav 2</div>
<div class="navButton" id="nav3">nav 3</div>
</body>
</html>

手动设置“样式”属性似乎是必要的,因为如果未设置此属性,第一个动画将来自屏幕的左上角。这可能是一个 jQuery bug,animate() 似乎在样式表或 element.style 中列出的值与新参数之间进行动画处理,而不是在计算的样式与新参数之间进行动画处理。设置 element.style 是我能想到的最好方法,而不是在 CSS 中对下划线的“顶部”和“左侧”进行硬编码。

关于使用 "position"的 jQuery 动画 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4047025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com