【问题标题】:Jquery Mobile opacity doesn't work :(Jquery Mobile 不透明度不起作用:(
【发布时间】:2014-04-14 23:35:27
【问题描述】:

如何让这个按钮在 jQuery mobile 上跳动?

jQuery mobile 是否存在问题,因为在我的主应用程序中,我可以在某些 div 上应用这种脉动效果,而在其他 div 上,它们只是闪烁、淡入淡出中断或生涩淡入淡出。

html:

<button id="pulsate">I want to pulsate!</button>

JS:

    $('#pulsate').on('click', function () {
        pulsate("#pulsate");
    });


function pulsate(element) { 
    $(element || this).animate({ opacity: 0 }, 500, function() { 
       $(this).animate({ opacity: 1 }, 500, pulsate); }); 
} 

http://jsfiddle.net/alecstheone/zCUSK/

我只使用 jquery 和 jquerymobile...我注意到如果我在 jsfiddle 中禁用 jquerymobile 它可以工作,但我不希望这样做,因为我在我的应用程序中使用 jquerymobile 来处理其他事情...

【问题讨论】:

    标签: javascript jquery jquery-mobile cordova


    【解决方案1】:

    您的代码工作正常,但您必须对脚本进行一些更改,因为您在按钮上有一个点击事件但使用 jQuery 移动您的按钮被 spandivs 包裹(主要是因为jquery mobile css),

    所以你只需要使用.closest() 遍历那个目标div 来设置你的动画效果。
    下面是带有所需效果的代码的小演示。

    $('#pulsate').on('click', function () {
        pulsate(this); // Change here
    });
    
    function pulsate(element) {
        $(element || this).closest("div.ui-btn").animate({
            opacity: 0
        }, 500, function () {
            $(this).closest("div.ui-btn").animate({
                opacity: 1
            }, 500, pulsate);
        });
    }
    

    Fiddle Example

    【讨论】:

    • 感谢您的回复!我注意到您使用了“div.ui-btn”。这是我的 phonegap 应用程序的一部分:jsfiddle.net/ezanker/D4UqU/12 我只想让它在 20% 时发出脉冲。它在小提琴上工作正常。但是在电话上它只是正确地淡出一次,然后立即淡出,没有延迟,它就一直呆在那里。有没有类似的问题?我需要使用最接近的或类似的东西吗?我是新手,几周以来我一直在努力让它发挥作用。如果您不知道phonegap,请告诉我实现此效果的另一种方法..也许其他人会工作..谢谢!
    • 不,你不必使用closest(),我刚刚经历了你的场景,它在浏览器中对我来说效果很好,抱歉,phonegap 我对此不太了解!代码运行良好,在进度条的 20% 以下按预期切换
    • 但是还有其他方法可以达到这种效果吗?也许其他人也会在设备上工作......
    • 等一下!我有个主意!
    • @AlexStanese 检查this,我用过fadeOut()fadeIn() 希望它也适用于jQuery Mobile 和phonegap!
    猜你喜欢
    • 2012-11-04
    • 2011-07-28
    • 2011-05-25
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    相关资源
    最近更新 更多