addClass,它更改bg图像,但在第一次加载时没有闪烁
addClass that changes bg-image but without a flicker on first load
我在每个键盘上运行一个函数来监视文本字段。
根据输入,我使用jquery来.removeClass("classwithBGImage").addClass("classwithnewBGimage")
这工作得很好,预计在第一次加载时,背景图像中会有闪烁。
我尝试过用Javascript和CSS预加载图像,甚至尝试过使用sprite,但当触发.removeClass("classwithBGImage").addClass("classwithnewBGimage")
时,第一次加载时总是会有闪烁。
更新:似乎是一个记录在案的chrome错误:http://code.google.com/p/chromium/issues/detail?id=102706
正如本文所述:http://jsfiddle.net/QpvUQ/2/
有什么想法吗?非常感谢。
将背景图像应用于绝对定位的div
和left:-99999px
。
#preload{
background-image : url(large-image.png);
position:absolute;
left:-99999px;
}
稍后,将其用于实际的div
.classwithnewBGimage{
background-image : url(large-image.png);
}
这是我知道的预加载图像的技巧之一,这样当你实际使用它们时就不会花时间。
此外,没有自变量的.removeClass()
也没有任何作用。为了避免闪烁,请使用平滑过渡。
.stylesWithoutImage{
///
}
.classwithnewBGimage{
//img
}
使用Move.js可以制作CSS更改的动画。
move('.box')
.set('background-image', 'url(img)')
.end();
PS:没有尝试过,但它说你可以用它来动画CSS。
我只使用CSS实现了一个与jsfiddle相同的功能。
它是如何工作的
.class {
background: url(...);
}
.class:hover {
background: url(...);
}
如果你需要使用Javascript,我留下了JS代码,但只需要CSS就可以了。
http://jsfiddle.net/QpvUQ/7/
我已经解决了这个问题,以防其他人遇到同样的问题。
通过预加载,图像被预加载,但许多浏览器仍然接收到对图像的304响应,从而在第一次加载时引起闪烁。在使用rails应用程序的情况下,可以强制浏览器缓存图像。
在Rails 3.1 的开发模式下启用图像缓存
- 分页:如何用AJAX加载第一个页面
- 加载器组件仅加载一次
- 如何加载一次模型并将其存储到变量中
- JS文件未加载第一页加载
- 每15天为新用户加载一次放大弹出菜单
- Jquery Ajax每隔1秒加载一次
- 每个用户/浏览器会话只加载一次Javascript
- 当audiojs加载两次时,audiojs进度条不工作
- 自定义JQUERY未在分页页面上加载(第一页除外)
- 获取 window.location.reload 以在 Ionic 中仅加载一次
- 只加载一次js函数
- 剑道TabstripDons't正确加载第一个选项卡
- 用于单击页面上的按钮的Javascript,每隔几分钟就会加载一次
- 有没有办法阻止脚本加载两次?JavaScript
- Facebook喜欢的按钮只加载一次
- 如何每 30 秒加载一次页面的一部分
- 为什么在 IIS7 中托管 MVC3 项目时,我的 AJAX 加载第一次失败
- 谷歌地图标记不加载第一次左右
- Youtube iFrame(与javascript API)加载第一次,但不是第二次.为什么
- 一些javascript问题:奇怪的时间依赖和图像不加载第一次