Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery动画防止所有框一起向上滑动_Javascript_Jquery_Animation_Jquery Animate_Slide - Fatal编程技术网

Javascript jQuery动画防止所有框一起向上滑动

Javascript jQuery动画防止所有框一起向上滑动,javascript,jquery,animation,jquery-animate,slide,Javascript,Jquery,Animation,Jquery Animate,Slide,我有36个框,您将鼠标悬停在标题上,它向上滑动以显示其下方的隐藏文本,而它的工作原理与预期一样。问题是所有36个框同时向上滑动,而不仅仅是您鼠标悬停的那一个。这里是我使用的脚本: $(document).ready(function() { $('.caption').mouseenter(function(){ $('.caption').stop().animate({height: "60%"}); }); $('.box').mouseleav

我有36个框,您将鼠标悬停在标题上,它向上滑动以显示其下方的隐藏文本,而它的工作原理与预期一样。问题是所有36个框同时向上滑动,而不仅仅是您鼠标悬停的那一个。这里是我使用的脚本:

$(document).ready(function() {
    $('.caption').mouseenter(function(){
        $('.caption').stop().animate({height: "60%"});
    }); 

    $('.box').mouseleave(function(){
        $('.caption').stop().animate({height: "8%"},  1000, function() {
        });
    });
});
现在,在大量阅读之后,我发现我需要使用“this”,所以我尝试了以下方法:

$(document).ready(function() {
    $('.caption').mouseenter(function(){
        $('.caption', this).stop().animate({height: "60%"});
    }); 

    $('.box').mouseleave(function(){
        $('.caption', this).stop().animate({height: "8%"},  1000, function() {
        });
    });
});
然而,这只是完全禁用了动画,我尝试了使用“.next”和许多其他组合,这只会导致动画也被禁用

简言之,我有36个盒子,我只想让你鼠标滑过的那一个盒子同时向上滑动,而不是所有的盒子


我是一个完全的jQuery新手,已经搜索了好几个小时,但找不到一个我希望实现的工作示例。非常感谢您的帮助。

请尝试从动画功能中删除
.caption
,然后像这样使用对
的引用

$(document).ready(function() {
$('.caption').mouseenter(function(){
    $(this).stop().animate({height: "60%"});
}); 

$('.box').mouseleave(function(){
    $(this).stop().animate({height: "8%"},  1000, function() {
    });
});
});
与jquery一起使用时,
this
对象甚至是对调用事件的特定元素的引用

啊,我明白了

$(document).ready(function() {
$('.caption').mouseenter(function(){
$(this).stop().animate({height: "60%"});
}); 

$('.caption').mouseleave(function(){
$(this).stop().animate({height: "8%"},  1000, function() {
});
});
});
刚刚将.box改为.caption,并且可以正常工作,谢谢你们的帮助!
我会把你的答案标记为正确的,因为你的答案确实让我走上了正确的方向,我只需要做一点小小的改变

您还可以提供一些html吗?您可以为您的工作提供一个提琴吗?请尝试将.caption从动画函数中去掉,只使用this object,因为this object是对调用事件的特定对象的引用。很抱歉,回复太晚了@b使用上述“是”选项,现在一次只能向上滑动一个框,但是,当它向上滑动时,标题将保留在容器顶部,当您再次移动时,下面的文本将朝上。。。。我会试着用小提琴来展示我在说什么。我仍然不确定你到底是什么意思。你有什么问题?