【问题标题】:JRumble and position fixed/absolute in css don't work togetherJRumble和css中的固定/绝对位置不能一起工作
【发布时间】:2014-05-29 05:09:56
【问题描述】:

我用 position: absolute 设计了我的网站徽标,但是当我使用 Jrumble 摇动它时,它在摇晃,但 css 位置被禁用。

这是我的 js 代码:

$('#log').jrumble();
var demoStart = function(){
    $('#log').trigger('startRumble');
    setTimeout(demoStop, 500);
};

var demoStop = function(){
    $('#log').trigger('stopRumble');
    setTimeout(demoStart, 10000);
};

demoStart();

和css代码:

#log {
position: absolute;
width: 650px;
right: 25px;
top: -15px;

}

怎么了?

【问题讨论】:

    标签: jquery absolute


    【解决方案1】:

    不幸的是,jRumble 依赖于使用relative 定位的元素。它会在运行时强制它进入该状态。您可以通过将所有绝对位置规则放在包装元素上,然后将 jRumble 效果直接应用于该绝对定位元素的子元素来解决它。

    在此处查看演示: http://jsfiddle.net/Kw6eb/

    HTML

    <div id="log-wrap">
        <img src="http://placekitten.com/300/300" id="log">
    </div>
    

    CSS

    #log-wrap {
        position: absolute;
        width: 250px;
        right: 100px;
        top: 100px;
    }
    
    #log {
        width: 250px;
    }
    

    您的 JavaScript 可以保持不变。我调整了演示的宽度和位置值,以表明它工作得更好。根据您的需要进行调整。

    【讨论】:

    • 你说我必须把我的元素 - 谁 jrumbled - 放在另一个 div 中。我已经这样做了,但这是额外的工作,我不想那样做。有真正的解决方案还是我必须这样做?
    • 这是我能想到的唯一解决方案。我最近打算写一个更强大的版本 2,但这里写了一个更好的基于 CSS 的抖动:elrumordelaluz.github.io/csshake我会尝试一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2021-04-27
    相关资源
    最近更新 更多