我在我的站点中使用了响应式图像的跟随源,但在 las chrome 更新后它停止工作,但仍在其他浏览器中工作。
//<![CDATA[
var queries = [{context: 'global',callback: function() {$('img').each(function(index) {
var small = $(this).attr('src');
$(this).attr('src',small);
});}},{context: 'sizeSmll',callback: function() {
$('img').each(function(index) {
var smll = $(this).data('smll');
$(this).attr('src',smll);});}},{context: 'size0',callback: function() {
$('img').each(function(index) {var medium = $(this).data('medium');
$(this).attr('src',medium);});}},{context: 'size1',callback: function() {
$('img').each(function(index) {var large = $(this).data('large');
$(this).attr('src',large);});}},{context: 'size2',callback: function() {
$('img').each(function(index) {var extralarge = $(this).data('extralarge');
$(this).attr('src', extralarge);
});}}];MQ.init(queries);
//]]>
CSS:
body:after {content: 'global';display: none;}
@media only screen and (max-width: 480px) {
body:after {content: 'sizeSmll'; display:none;}
...以及更多具有相同来源的媒体查询。
和 html 图像:
<img class="responsiveImg" src="urlImage0.png"
data-smll="urlImage1.png"
data-medium="urlImage2.png"
data-large="urlImage3.png"
data-extralarge="urlImage4.png">
它也使用 onmediaquery.min.js 文件,来源如下:
var MQ=function(b){b=b||{};b.init=function(a){this.callbacks=[];this.context="";if("undefined"!==typeof a)for(i=0;i<a.length;i++)this.addQuery(a[i]);this.addEvent(window,"resize",b.listenForChange,b);this.listenForChange()};b.listenForChange=function(){var a;window.getComputedStyle&&(a=window.getComputedStyle(document.body,":after").getPropertyValue("content"),null!=a&&(a=a.replace(/['"]/g,""),a!==this.context&&this.triggerCallbacks(a),this.context=a))};b.addQuery=function(a){if(!(null==a||void 0== a))return this.callbacks.push(a),this.callbacks[this.callbacks.length-1]};b.removeQuery=function(a){if(!(null==a||void 0==a))for(var c=-1;-1<(c=this.callbacks.indexOf(a));)this.callbacks.splice(c,1)};b.triggerCallbacks=function(a){var c,b;for(c=0;c<this.callbacks.length;c++)b=this.callbacks[c].callback,this.callbacks[c].context===a&&void 0!==b&&b()};b.addEvent=function(a,b,d,e){null==a||void 0==a||(a.addEventListener?a.addEventListener(b,function(){d.call(e)},!1):a.attachEvent?a.attachEvent("on"+ b,function(){d.call(e)}):a["on"+b]=function(){d.call(e)})};return b}(MQ||{});
想法来自这里:
http://www.springload.co.nz/love-the-web/responsive-javascript
有人知道新版 Chrome 发生了什么变化并可能影响我的来源吗?提前致谢!
最佳答案
尽量不要使用“display:none”,而是使用“opacity:0”。 我不知道新 Chrome 有什么变化,但似乎新 Chrome 无法将对象的属性“内容”设置为无。
关于javascript - 在 Chrome 版本 33.0.1750.117 上使用 "Content"的响应图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145289/