仅在页面加载时禁用 CSS 转换

Gio*_*gio 4 jquery css-transitions

我有一个 div 样式,可以在悬停时在背景颜色上平滑过渡。该 div 显示在许多页面(包括主页)中,但在主页中它具有不同的背景颜色。

div {
    border:1px solid;
    background-color:#fff;
    display:inline-block;
    width:100%;
    height:100px;
    -webkit-transition: 0.5s;
    -moz-transition:    0.5s;
    -o-transition:      0.5s;
    transition:         0.5s;
}

div.homepage {
    background-color:#777;
}

div:hover, div.homepage:hover {
    background-color:#f00;
}
Run Code Online (Sandbox Code Playgroud)

由于此 div 包含在每个页面上的 PHP 片段中,因此(保持代码清洁)的想法是使用 PHP 输出通用 div,然后仅通过 jQuery 在主页上添加“主页”类。

$('div').addClass("homepage");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致页面加载时出现不希望的转换(请参阅fiddle,为了清楚起见,在加载后单击“运行”)。如何仅在页面加载时禁用 CSS 转换,而不影响正常行为(当 div 悬停时)?

Cra*_*ole 13

这对我有用http : //css-tricks.com/transitions-only-after-page-load/

本质上,您向 body 标记添加一个类:

<body class="preload">
Run Code Online (Sandbox Code Playgroud)

禁用转换:

.preload * {
 -webkit-transition: none !important;
 -moz-transition: none !important;
 -ms-transition: none !important;
 -o-transition: none !important;
}
Run Code Online (Sandbox Code Playgroud)

然后,一旦页面加载完毕,您就删除该类:

$(window).load(function() {
  $("body").removeClass("preload");
});
Run Code Online (Sandbox Code Playgroud)

简单!:D


fra*_*val 0

当您动态地将类添加homepagediv.

如果div加载了,则class加载中没有任何转换。

在你的html中:

<div class="homepage"></div>
Run Code Online (Sandbox Code Playgroud)

在将类发送到客户端之前,在 PHP 中添加该类。