javascript - 如何选择单个 div 并在 jquery 中独立于其他元素对其及其相关元素进行动画处理

标签 javascript jquery html animation

我在 HTML 中有三个具有相同类的元素,并且我使用 jQuery 对“.tag”类和相关类(如“.content”)应用了一些效果,这些效果在将鼠标悬停在它们上方时触发。但是,仅将鼠标悬停在其中一个“标签”类上就会触发所有三个 div 中的动画,因为它们具有相同的类名。我希望动画仅在我悬停的“标签”类上触发。我尝试使用 $(this) 而不是 $(".tag") 但动画不会在相关 div 上触发,例如“内容”或“标签箭头”。这是我的 HTML 和 JS 代码:

        var quicker = 100;
        var quick = 250;
        var quickish = 500;

        //  mouse over
        $(".tag").hover(function() {

            $(".tag").stop().animate({
                opacity: 1,
                height: "200px",
                width: "250px",
                bottom: "13%"
            }, quick);

            $(".tag--arrow").stop().animate({
                opacity: 1
            }, quick);

            $(".content").css({
                opacity: 0.0,
                visibility: "visible"
            }).delay(quick).animate({
                opacity: 1.0
            }, quicker);

            $(".bottom-row").css({
                opacity: 0.0,
                visibility: "visible"
            }).delay(quick).animate({
                opacity: 1.0
            }, quicker);


            //  mouse out
        }, function() {

            $(".tag").stop().animate({
                opacity: 0.5,
                height: "50px",
                width: "50px",
                bottom: "15%"
            }, quick);

            $(".tag--arrow").stop().animate({
                opacity: 0.5
            }, quick);

            $(".content").css({
                opacity: 1,
                visibility: "hidden"
            }).animate({
                opacity: 0
            }, quick);

            $(".bottom-row").css({
                opacity: 1,
                visibility: "hidden"
            }).animate({
                opacity: 0
            }, quick);
        });
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container-fluid" style="padding:0;margin:0;">
        <div class="grid" data-packery='{ "itemSelector": ".grid-item", "gutter": 0, "percentPosition": true }'>
            <div class="grid-item col-xs-6 col-sm-4 col-md-4">
                <div class="grid-item-content">
                    <h2>Rishikesh</h2>
                    <div class="tag--arrow"></div>
                    <div class="tag">
                        <div class="texxt">Our hostel</div>
                        <div class="content">
                            <h1>Title</h1>
                            <p>Description lorem ipsum lksd flksdf jfkdlskf.</p>
                        </div>
                        <div class="bottom-row">
                            <div class="left">
                                <a href="#">View More</a>
                            </div>
                            <div class="right">
                                <p>Add to Cart</p>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
           <div class="grid-item col-xs-6 col-sm-8 col-md-4" style="background: url('../bonfire/images/gallery/thumb/16.jpg');">
                <div class="grid-item-content">
                    <h2>Agra</h2>
                <div class="tag--arrow"></div>
                    <div class="tag">
                        <div class="texxt">Our hostel</div>
                        <div class="content">
                            <h1>Title</h1>
                            <p>Description lorem ipsum lksd flksdf jfkdlskf.</p>
                        </div>
                        <div class="bottom-row">
                            <div class="left">
                                <a href="#">View More</a>
                            </div>
                            <div class="right">
                                <p>Add to Cart</p>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
          <div class="grid-item grid-item--height2 col-xs-6 col-sm-4 col-md-4" style="background: url('../bonfire/images/gallery/thumb/15.jpg');">
                <div class="grid-item-content">
                    <h2>Varanasi</h2>
                <div class="tag--arrow"></div>
                    <div class="tag">
                        <div class="texxt">Our hostel</div>
                        <div class="content">
                            <h1>Title</h1>
                            <p>Description lorem ipsum lksd flksdf jfkdlskf.</p>
                        </div>
                        <div class="bottom-row">
                            <div class="left">
                                <a href="#">View More</a>
                            </div>
                            <div class="right">
                                <p>Add to Cart</p>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
  </div>
  
  

请帮助我。提前致谢。

最佳答案

看到这个使用 parent()find() 选择器来分别this

        var quicker = 100;
        var quick = 250;
        var quickish = 500;

        //  mouse over
        $(".tag").hover(function() {

            $(this).stop().animate({
                opacity: 1,
                height: "200px",
                width: "250px",
                bottom: "13%"
            }, quick);

            $(this).parent().stop().animate({
                opacity: 1
            }, quick);

            $(this).find(".content").css({
                opacity: 0.0,
                visibility: "visible"
            }).delay(quick).animate({
                opacity: 1.0
            }, quicker);

            $(this).find(".bottom-row").css({
                opacity: 0.0,
                visibility: "visible"
            }).delay(quick).animate({
                opacity: 1.0
            }, quicker);


            //  mouse out
        }, function() {

            $(this).stop().animate({
                opacity: 0.5,
                height: "50px",
                width: "50px",
                bottom: "15%"
            }, quick);

            $(this).parent().stop().animate({
                opacity: 0.5
            }, quick);

            $(this).find(".content").css({
                opacity: 1,
                visibility: "hidden"
            }).animate({
                opacity: 0
            }, quick);

            $(this).find(".bottom-row").css({
                opacity: 1,
                visibility: "hidden"
            }).animate({
                opacity: 0
            }, quick);
        });
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container-fluid" style="padding:0;margin:0;">
        <div class="grid" data-packery='{ "itemSelector": ".grid-item", "gutter": 0, "percentPosition": true }'>
            <div class="grid-item col-xs-6 col-sm-4 col-md-4">
                <div class="grid-item-content">
                    <h2>Rishikesh</h2>
                    <div class="tag--arrow"></div>
                    <div class="tag">
                        <div class="texxt">Our hostel</div>
                        <div class="content">
                            <h1>Title</h1>
                            <p>Description lorem ipsum lksd flksdf jfkdlskf.</p>
                        </div>
                        <div class="bottom-row">
                            <div class="left">
                                <a href="#">View More</a>
                            </div>
                            <div class="right">
                                <p>Add to Cart</p>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
           <div class="grid-item col-xs-6 col-sm-8 col-md-4" style="background: url('../bonfire/images/gallery/thumb/16.jpg');">
                <div class="grid-item-content">
                    <h2>Agra</h2>
                <div class="tag--arrow"></div>
                    <div class="tag">
                        <div class="texxt">Our hostel</div>
                        <div class="content">
                            <h1>Title</h1>
                            <p>Description lorem ipsum lksd flksdf jfkdlskf.</p>
                        </div>
                        <div class="bottom-row">
                            <div class="left">
                                <a href="#">View More</a>
                            </div>
                            <div class="right">
                                <p>Add to Cart</p>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
          <div class="grid-item grid-item--height2 col-xs-6 col-sm-4 col-md-4" style="background: url('../bonfire/images/gallery/thumb/15.jpg');">
                <div class="grid-item-content">
                    <h2>Varanasi</h2>
                <div class="tag--arrow"></div>
                    <div class="tag">
                        <div class="texxt">Our hostel</div>
                        <div class="content">
                            <h1>Title</h1>
                            <p>Description lorem ipsum lksd flksdf jfkdlskf.</p>
                        </div>
                        <div class="bottom-row">
                            <div class="left">
                                <a href="#">View More</a>
                            </div>
                            <div class="right">
                                <p>Add to Cart</p>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
  </div>
  
  

关于javascript - 如何选择单个 div 并在 jquery 中独立于其他元素对其及其相关元素进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786679/

相关文章:

javascript - 尝试在 javascript 中获取 aria-expanded 值,但得到 "undefined"

javascript - 如果列文本在 Angular View 中太长,请将其放入工具提示中

javascript - 突出显示当前页面

javascript - 循环浏览 HTML5 中的视频

javascript - 动态添加和删除表单域

javascript - ID 未提交查询

jquery - 所有文本字段中的值计算时出现问题

javascript - 为什么这个 jQuery 不起作用?

php - CSS + jQ 插件阻止 AJAX 调用/事件监听器工作?

Javascript - 嵌套循环加1?