【问题标题】:CSS Opacity Messing with Other CSS3 TransitionsCSS 不透明度与其他 CSS3 过渡混淆
【发布时间】:2010-09-16 22:16:41
【问题描述】:

所以我有几个悬停链接,我正在对它们使用 css3 过渡效果。由于某种原因,在我将鼠标悬停在对其元素应用不透明度的链接上之后,其他具有过渡效果的链接停止工作。观看视频,以便您了解我的意思:http://vimeo.com/14869503 - 密码是视频的 stackoverflow。我不希望设计完全公开。

关于什么可能导致此问题的任何想法或者它是一个错误?有什么办法解决吗?

谢谢!


所以这里是有问题的开发网站:http://dev.thriveafrica.org/

我应用于导航的css是这样的:

#nav-container #nav ul a {
    padding: 10px 10px 5px;
    background: url('images/nav/boy.png') no-repeat 0px 45px;
    text-decoration: none;
    color: #FFF;
    font-family: Bebas, Arial, Helvetica;
    font-size: 15px;
}
#nav-container #nav ul a:hover {
    background: url('images/nav/boy.png') no-repeat 0px 11px;
    color: #F15A29;
}

以及我应用到右侧不透明元素的css:

    #home-right #store_items ul li {
    text-align: left;
    height: 70px;
    background: #FFF;
    margin: 10px 0;
    padding: 5px 0;
    border: 1px solid #EEE;

    opacity: 0.7;
    -moz-opacity: 0.7;
    filter:alpha(opacity=70);

    -moz-box-shadow: 1px 1px 2px #CCCCCC; /* FF3.5+ */
    -webkit-box-shadow: 1px 1px 2px #CCCCCC; /* Saf3.0+, Chrome */
    box-shadow: 1px 1px 2px #CCCCCC; /* Opera 10.5, IE 9.0 */

    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px;

    -moz-transition: all 0.5s ease-out;
    -o-transition: all 0.5s ease-out;
    -webkit-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
}

#home-right #store_items ul li:hover {
    opacity: 1.0;
    -moz-opacity: 1.0;
    filter:alpha(opacity=100);

    border: 1px solid #CCC;
}

    #home-right #store_items ul li a {
        color: #c24b00;
        display: block;
    }

除了这两个元素没有其他CSS。抱歉这么晚才上来代码。谢谢大家!

【问题讨论】:

  • 视频是 UI 的有趣演示,但正如 @Frankie 建议的那样,为了提供特定帮助您,我们可能需要查看一些代码。
  • 在没有看到代码的情况下,我们很难调试它。我建议尝试将您的页面缩减为仅演示问题的最小示例。删除除有问题的链接之外的所有内容、所有不相关的样式等,然后发布您遇到的问题的演示。在此过程中,这实际上可能会帮助您发现问题;如果没有,您可以编辑您的问题以包含该精简示例,我们将能够为您提供更好的帮助。
  • 我添加了代码和指向有问题的站点的链接。

标签: css


【解决方案1】:

您的 Javascript 代码可能存在错误。

当您运行不透明度按钮时,错误会出现,其余的过渡停止。如果您可以发布代码,也许我们可以进一步调试。


编辑:请注意,您使用的 CSS3 过渡效果不适用于大多数浏览器。您可能应该恢复到 jQuery 的效果,让它跨浏览器工作。到目前为止 the state of transition 应该或多或少是这样的:

Apple Safari (supported in Safari 3.1 and later, and in iPhone OS 2.0 and later.)
Google Chrome
Mozilla Firefox 3.7 alpha (also known as Minefield)
Opera 10.5x (also supported by Opera Mobile 10 beta 2)

编辑:我现在已经运行了您的网站,并且可以使用 Firefox 和 Firebug 看到以下函数正在引发错误(通常错误对 IE 非常重要)。

// on store_feed.js
jQuery.fn.random = function (amount) {
    var els = this.get();
    var ret = [];

    while (els.length && ret.length < amount) {
        ret.push(els.splice(Math.floor(Math.random() * els.length), 1)[0]);
    }

    return $(ret);
}

萤火虫抛出的错误:

$ is not a function
store_feed.js : return $(ret);

它接缝你在调用函数而不等待 jQuery 被激活。

解决这个问题,我们会看看 CSS 是否有问题,或者只是 JS。

然后安装 Firebug! ;)

【讨论】:

  • 愚蠢的我不提供任何代码。只是认为视频将是一个很好的视觉效果。我将出城几天。我会在星期二发布它的代码。非常感谢!
  • 我也需要把它移到哪里?谢谢!
  • 其实现在回去试试。我已经解决了你提到的问题,但我仍然遇到 css 不透明度的问题。
  • @Marc 我要说的第一个问题与 Javascript 有关,现在我认为问题出在过渡上。我可以看到元素的变化(位置和不透明度)只是直截了当的,在 Firefox 上没有过渡。不过 Chrome 效果很好。
猜你喜欢
  • 2012-05-01
  • 2021-07-26
  • 2016-11-02
  • 2020-05-29
  • 1970-01-01
  • 2016-03-12
  • 2017-06-27
  • 2014-06-28
  • 2019-01-03
相关资源
最近更新 更多