【问题标题】:CSS Transition Left to Right working, RIght to Left not workingCSS转换从左到右工作,从右到左不工作
【发布时间】:2013-01-05 05:59:59
【问题描述】:

如果你访问我的网站:http://warringah-plastics.com.au/wplastics 当您将鼠标悬停在主导航中的菜单项上时,您会看到一个指示箭头显示在其顶部。然后,当您在菜单上从左到右移动鼠标时,CSS 过渡非常平滑。但是当您从右向左移动时,过渡类型会跳过菜单项并且看起来不太好。目前我正在将此 CSS 应用于 nav li 元素:

transition: all 0.5s ease-in-out 0s !important;

我尝试过使用悬停 CSS,但没有成功。提前致谢!

【问题讨论】:

  • 请把相关代码放在这里
  • 您知道该页面加载了 1.4 MB 的脚本,对吧?我花了 30 秒才打开它
  • 在 ie8 上我两种方式都得到了相同的效果,它显示子菜单的第一项,然后稍作停顿,然后显示其余项。
  • 我不确定这是否应该是这样的,但是页面中的所有内容似乎都损坏了。

标签: css css-transitions transitions


【解决方案1】:

编辑:

我建议只使用 css 方法,有很多方法可以做到这一点。 至少对我来说看起来很流畅。 JSFIDDLE:http://jsfiddle.net/Victornpb/u85as/226/http://jsfiddle.net/Victornpb/u85as/236

ul{
    width: 100%;
    margin: 0;
}
li{
    display: inline-block;
    border: 1px solid red;

    width: 100px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; 
}

li:nth-child(1):hover ~ #arrow{
    margin-left: 0;
}
li:nth-child(2):hover ~ #arrow{
    margin-left: 100px;
}
li:nth-child(3):hover ~ #arrow{
    margin-left: 200px;
}
li:nth-child(4):hover ~ #arrow{
    margin-left: 300px;
}
li:nth-child(5):hover ~ #arrow{
    margin-left: 400px;
}

li:hover ~ #arrow{
    opacity: 1;
}

#arrow{
    margin-left: -50px;
    border:0px solid red;
    position:relative;
    width:100px;
    text-align:center;
    opacity: 0;

    transition:All 1s ease;
    -webkit-transition:All 1s ease;
    -moz-transition:All 1s ease;
    -o-transition:All 1s ease;
}
#arrow:before{
    content:"";
    display:block;
    width:0;
    border:10px solid red;
    border-color:red  transparent transparent transparent;
    position:absolute;
    top:100%;
    left:50%;
    margin-left:-10px;
}

标记:

<ul>
    <li>Menu 1</li>
    <li>Menu 2</li>
    <li>Menu 3</li>
    <li>Menu 4</li>
    <li>Menu 5</li>

    <div id="arrow"></div>

</ul>

注意事项

我看不到任何过渡。

但是您在某处严重泄漏,首先该页面花了将近一分钟来加载所有内容。请求栏(蓝色),在 44.5 秒后停止加载。

在此之前,页面会像一百万个事件一样触发,认真看看滚动条的大小。和 huuuge 黄色条。

【讨论】:

  • 感谢大家的反馈。我肯定会检查脚本,我相信这是一个未正确连接到 API 的 Twitter 脚本。无论如何,如果你看不到主菜单,那可能是因为你在一个较小的屏幕上(我正在修复这个问题,因为我正在应用不同的 CSS 来优化所有屏幕)。如果您使用 Firefox 或 Chrome 进入正常的大屏幕,您应该会看到从左到右悬停在导航项目上时的过渡效果更流畅,而从右到左则不那么优雅。谢谢,
  • 我使用的是 1920x1080,无论如何我将答案编辑为真实答案。
  • 嘿,非常感谢这个例子,它很棒!我不是专家,绝对是菜鸟。如果您能告诉我如何调整现有代码以适应您所做的事情,或者指出我的代码哪里出了问题,那就太好了。我有点想知道具体如何让这种良好的缓动走向另一种方式......css的哪一部分对于实现这一目标至关重要?谢谢!!!
  • 我现在没有时间,但我在这里更清楚地说明它是如何工作的 jsfiddle.net/Victornpb/u85as/236 添加了一些 cmets,如果你仍然不明白它是如何工作的,请告诉我。
猜你喜欢
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多