首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加条件时不执行动画的Jquery

问添加条件时不执行动画的Jquery
EN

Stack Overflow用户
提问于 2015-07-26 20:16:57
回答 2查看 81关注 0票数 1

一直在玩添加一个级联动画到我的个人网站。它完全没有条件,但是我希望脚本检查动画是否已经运行,这样当用户加载一个新页面时,动画就不需要播放.。

代码语言:javascript
复制
var topper = document.getElementByClassName("top-thing");
if (topper.style.display === "none") { } 

要执行的代码是:

代码语言:javascript
复制
$(document).ready(function() {
    if (topper.style.display === "none") { 

            $('.top-thing').slideDown("slow");
            $('.middle-thing').delay(500).slideDown("slow");
            $('.bottom-thing').delay(1000).slideDown("slow");
            topper.style.display = "initial";
        } 
 });

我想我一定是以某种不正确的方式引用了style元素,我的..top thing的CSS如下所示:

代码语言:javascript
复制
 .top-thing {
    padding: 10%;
    text-align: center;
    display: none;
    background-color: #5CADFF;
    margin: 0;
    position: relative;
 }

因此,我想检查这个属性是否是" none“,并执行动画代码当且仅当它是,事实上,没有。我想有一个问题源于此:动画发生后的,JS将这个样式属性更改为什么?。

带有JSFiddle &CSS的https://jsfiddle.net/evanbananas/ua418bzo/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-26 20:31:31

JavaScript中的条件应该如下所示,以检查“.thing”上的显示属性是否等于"none“(topper是一个不正确的引用):

代码语言:javascript
复制
$(document).ready(function() {
    if ($('.top-thing').css('display') == 'none') { 
        $('.top-thing').slideDown("slow");
        $('.middle-thing').delay(500).slideDown("slow");
        $('.bottom-thing').delay(1000).slideDown("slow");
        topper.style.display = "initial"; //This line will have to change
    }           
});

在这种情况下,如果display属性不是"none“,它将不会执行if语句中的逻辑。

*此外,你将“初始”改为“初始”的提法也必须加以更新。您可能需要设置代码来使用会话变量来记住动画是否在各个页面中运行。完成这一任务是一个全新的问题,应该这样问。

以下是更新的JSFiddle。

票数 2
EN

Stack Overflow用户

发布于 2015-07-26 20:34:31

问题在于分配给topper。若要解决此问题,请替换

代码语言:javascript
复制
topper.style.display === "none"

使用

代码语言:javascript
复制
$('.top-thing').css('display') === 'none'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31641499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档