首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JQuery addClass的CSS动画。仅使用true或false运行一次

使用JQuery addClass的CSS动画。仅使用true或false运行一次
EN

Stack Overflow用户
提问于 2013-05-16 10:50:52
回答 1查看 280关注 0票数 2

当页面在浏览器上显示时,我有一个想要运行的CSS动画。我使用true或false函数来获取位置(称为“position to”)。我可以在页面进入视图时运行一次,或者当posish为真(13900)时运行一次,但我也想在posish变为false时再次运行一次。

我的问题是,如果我将它设置为true和false都运行动画,动画会随着您的滚动而持续运行,而我希望它只为每个实例运行一次,直到实例变为相反。另外,我有两个运行相同动画的类,所以我可以添加和删除。我希望这是有意义的!下面是我的代码:

代码语言:javascript
复制
if (posish(13900)) {    
    $('.shadow').removeClass('shrink-2');   
    $('.shadow').addClass('shrink-1');
} else {
    $('.shadow').removeClass('shrink-1');
    $('.shadow').addClass('shrink-2');  
}

以下是function函数的代码

代码语言:javascript
复制
function posish(pos) {
    pos-=19;
    if (scrolled-viewport/4 < pos) {
        return false;
    } else if (scrolled > pos+viewport/2) {
        return true;
    } else {
        return (scrolled-viewport/4-pos)/(viewport/4);
    }
}

如果您需要更多信息,请告诉我。谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-16 18:33:10

好的,这是我用来演示代码的小提琴:

http://jsfiddle.net/3XbTG/

如果您运行它并查看控制台,您将看到它成功地测试了两个possh值。

我认为您想要做的是查看"pos“是否大于总视口高度的1/4 (高度+滚动位置- 19)。

第一个问题是,您希望在每次运行函数时获取viewportscrolled的值。

第二个问题是您应该只运行一个测试,并返回其中的值。您的函数返回的是布尔值或数字,这很令人困惑。

代码语言:javascript
复制
function posish(pos) {
    var viewport = $(window).height();
    var scrolled = $('body').scrollTop();
    var totalHeight = scrolled + viewport - 19;
    return (totalHeight / 4 < pos);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16578253

复制
相关文章

相似问题

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