另一个图像预加载问题
Yet another image preloading issue
我有一个脚本可以手动预加载所有需要的图像。它看起来像这样:
<script type="text/javascript">
(new Image()).src = "/images/buttonpinkpressed.png";
(new Image()).src = "/images/smallbuttonpinkpressed.png";
</script>
实际上,每种类型的按钮和其他元素都有很多这样的条目。最糟糕的是,该项目正在进行中,每天都在添加新按钮,因此很容易忘记将它们添加到列表中。
现在,我想使用一个通用脚本来预加载正在使用的所有内容。
它应该使用类似jQuery的选择器枚举文档中的所有元素(例如,$('buttons')以获取所有按钮),然后 - 这对我来说是最难的部分 - 找到样式,这是元素的类和"active"类的结果(不要与:active pseudoclass混淆,不过,应该没有任何区别)。
例如,有一个按钮:
<button type="button" class="small pink"><p>Menu</p></button>
还有以下 CSS:
button.pink.large
{
background-image: url('buttonpinknormal.png');
}
button.pink.large.active
{
background-image: url('buttonpinkpressed.png');
}
button.pink.small
{
background-image: url('buttonpinksmallnormal.png');
}
button.pink.small.active
{
background-image: url('buttonpinksmallpressed.png');
}
显然,对于此按钮,预加载的图像应该是最后一个,因为"小"和"粉红色"是明确定义的,并且"活动"是我们正在寻找的:
button.pink.small.active
{
background-image: url('buttonpinksmallpressed.png');
}
因此,问题是如何过滤样式。
问候
更新
如您所见,最初按钮没有"活动"样式。它被添加了一个脚本在触摸事件(因为Android Webkit不支持真正的:active)。这就是应从另一个脚本预加载图像的原因。而且,是的,我在单击时看到活动状态图像的运行时加载,它看起来很丑。
使用精灵并更改background-position
,这样浏览器只需要执行 1 个请求,并且您不必进行预加载,因为正常状态应该是可见的。而且,在状态之间切换的速度非常快,因为它只是重新定位渲染的图像(并不是说单独的图像很慢,只是效率较低)
相关文章:
- 在IE中加载Firebug Lite时出现问题
- ng绑定和ng href问题.ng href未从控制器加载数据
- FancyTree JS+Backbone.JS-将数据加载到FancyTree时出现问题
- 在FF和IE中使用vimeo播放器的问题-加载flash播放器而不是使用HTML5播放器
- 将数据加载到使用JSON返回的表单字段时出现问题
- 加载泰坦尼克号可视化数据时出现问题
- 动态加载的自定义javascript/jQuery/HTML5音频播放器的问题
- 使用ajax在html中加载html文件时出现的问题
- 在服务器上通过jQueryAjax上传加载的图像时出现问题
- jQuery全局加载页面问题
- XML 问题 - 加载空白页
- Chrome 应用/扩展程序 - 后台请求错误,或允许应用问题加载 Google 文档 API
- Angularjs $http IE9 中的本地磁盘问题加载数据
- Firefox中的大小调整问题-加载时
- 通过控制器问题加载图像
- AJAX问题"加载更多"按钮:点击后消失
- Chrome浏览器问题:“加载资源:net::ERR_CONNECTION_TIMED_OUT”失败
- 有问题加载所有JSON数据到标记层与在For循环
- XMLHttpRequest -事件的一个问题.加载和事件.总值
- Ember JSON加载问题-加载路由时出错:未定义