为什么赢了';这个超级简单的jQuery不管用吗? #框{背景:红色;宽度:100px;高度:100px;颜色:#fff;线条高度:100px;} $(函数(){ $('a#clickMe')。单击(函数(e){ e、 预防默认值(); $('框').css('位置','绝对').animate({ “左”:“+=100px” },函数(){ if($('#box').offset().left>$(document.width()){ 警报('这就足够了') } }); }); }); 我动!
我试图在框到达页面末尾时提醒“这已经足够远了”。但警报从未出现 编辑为什么赢了';这个超级简单的jQuery不管用吗? #框{背景:红色;宽度:100px;高度:100px;颜色:#fff;线条高度:100px;} $(函数(){ $('a#clickMe')。单击(函数(e){ e、 预防默认值(); $('框').css('位置','绝对').animate({ “左”:“+=100px” },函数(){ if($('#box').offset().left>$(document.width()){ 警报('这就足够了') } }); }); }); 我动!,jquery,Jquery,我试图在框到达页面末尾时提醒“这已经足够远了”。但警报从未出现 编辑 算了,算了吧。我不得不使用$(window.width(),而不是$(document.width() 因为向左移动元素会扩大文档的宽度 尝试添加以下css: <style type="text/css"> #box { background: red; width: 100px; height: 100px; color: #fff; line-height: 100px; } </style>
算了,算了吧。我不得不使用$(window.width(),而不是$(document.width() 因为向左移动元素会扩大文档的宽度 尝试添加以下css:
<style type="text/css">
#box { background: red; width: 100px; height: 100px; color: #fff; line-height: 100px; }
</style>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('a#clickMe').click(function(e) {
e.preventDefault();
$('#box').css('position', 'absolute').animate({
'left' : '+=100px'
}, function() {
if ($('#box').offset().left > $(document).width()) {
alert('that is far enough')
}
});
});
});
</script>
<a href="" id="clickMe">Click Me</a>
<div id="box">I Move!</div>
我动!
示例:
编辑:已更新以使其与FF兼容。多亏了。您有两个问题:
看一看。这是解决这个问题的一个选择。另一种方法是将documents width属性保存在某个位置,并在div元素“拉伸”document元素之前保持与原始宽度的比较。ahh有意义。已经用另一种方式解决了这个问题,但很高兴能解释为什么它以前不起作用。@Montgamery:请发布你的解决方案并接受它作为答案。@Tomalak Geret'kal:你是对的。看起来FF不喜欢
溢出:隐藏在正文
上(或其他什么),我需要初始化框
上的top
CSS属性。这里有一个更新版本。谢谢您的提醒。@patrickdw:现在,第一次单击时,
会向上移动到文档顶部。@Tomalak Geret'kal:是的,但这超出了问题的范围。回答的目的是解释为什么alert()
从未触发,我就是这么做的,这也是OP接受答案的原因。实际上,如果使用document.width
它会按原样工作。(尽管我仍然会在alert()
行的末尾添加一个分号)。
#wrapper {
width:100%;
height:100%;
overflow:hidden;
position:relative;
margin:0;
padding:0;
}
#box{
background:orange;
top:0;left:0;
}
<div id="wrapper">
<a href="" id="clickMe">Click Me</a>
<div id="box">I Move!</div>
</div>