Jquery在类上制作动画

Posted

技术标签:

【中文标题】Jquery在类上制作动画【英文标题】:Jquery animate on a class 【发布时间】:2011-07-16 22:10:47 【问题描述】:

大家好,我是 JQuery 的新手,我有一个关于为某个班级的孩子制作动画的问题。

我有以下几点:

    <div class="block"><img src="a.jpg" class="top"><img src="b.jpg"></div>
    <div class="block"><img src="c.jpg" class="top"><img src="d.jpg"></div>

我用 (this) 调用 div,我想选择具有“top”类的图像进行动画处理。

我试过了

$(this, 'img.top').animate(
            opacity:0
        ,400);
    )

但它不起作用。 有谁知道执行此选择的正确语法?谢谢

【问题讨论】:

对不起,我的问题不清楚。这是被鼠标悬停的 div。 【参考方案1】:

你需要写$('img.top', this); context 参数是第二个。

相当于$(this).find('img.top')

【讨论】:

谢谢!这很好用。我需要等待 7 分钟才能接受您的回答。只是出于好奇,当$(parent child) 似乎相反时,为什么要按这个顺序写? @Luke:因为第二个参数是可选的。不过,你是对的;这是违反直觉的。 =/ 我怎么知道要使用哪一个? @Luke:我不确定你在问什么。 我最初认为 (this) 是 img 的父级。为什么用父子选择器找不到呢?【参考方案2】:
$('img.top').hover(function()$(this).animate(
            opacity:0
        ,400););

试试看^^^^^^^ :-)

还要确保它在 dom 存在时运行或将其包装:

$(function()/*jquery stuff*/);

【讨论】:

感谢您查看我的答案=)。我在单独的 div 中有几张带有“top”类的图像。我只想在 div 鼠标悬停时为图像设置动画。 $(function()/*jquery stuff*/);:P【参考方案3】:

如果您想确保在 div class="block" 内的图像 class="top" 上制作动画,您可以这样做:

$('.block').children('img.top').animate(opacity:0,400);

显然,如果你在一个使用类块在 div 上运行的函数内部,你可以更改为:

$(this).children('.top').animate(opacity:0,400);

查看demo here 将鼠标悬停在 div 上将使用 $(this) 来执行动画...

【讨论】:

以上是关于Jquery在类上制作动画的主要内容,如果未能解决你的问题,请参考以下文章

为啥无法在类上找到适当的构造函数

jQuery在类中淡入淡出/设置图像动画

无法在类上找到适当的构造函数

如何在类扩展中添加静态(存储)属性以制作单例? (迅速)

Firestore:在类上找不到要序列化的属性

使 StructLayout 在类上工作,因为它在结构上工作