首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从data-src属性设置img src

从data-src属性设置img src
EN

Stack Overflow用户
提问于 2017-07-10 04:56:54
回答 1查看 2.7K关注 0票数 0

我尝试使用jquery为多个图像设置来自data-src属性的img src属性,但代码不起作用。Img src不变。

这里有一个链接,可以查看我的代码实际运行情况。

代码语言:javascript
复制
jQuery(document).ready(function($){
    $('.container figure.images').each(function(index, element){
  var thisImage = $(this);
  var canvas = thisImage.find("canvas").get(0);
  var ctx = canvas.getContext("2d");
  ctx.rect(298, 0, 984, 329);
  ctx.rect(0, 329, 1280, 514);
  ctx.clip();
  img = new Image();
  img.onload = function () {
    ctx.drawImage(this, 0, 0, img.width, img.height);
    var imgNew = canvas.toDataURL("image/png");
    thisImage.find("img").attr('src', imgNew);
  };
  img.src = thisImage.find("img").attr('data-src');
});
});
代码语言:javascript
复制
.container figure img {
  width: 100%;
  height: auto;
  display: block;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<section class="platform">
      <div class="container">

        <figure class="images">
          <canvas width="1280" height="843" style="display: none"></canvas>
          <img src="#" data-src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" alt="description" />
        </figure>

        <figure class="images">
          <canvas width="1280" height="843" style="display: none"></canvas>
          <img src="#" data-src="https://www.dropbox.com/s/bl5yz4itgbo1ggl/2.jpg" alt="description" />
        </figure>

        <figure class="images">
          <canvas width="1280" height="843" style="display: none"></canvas>
          <img src="#" data-src="https://www.dropbox.com/s/bl5yz4itgbo1ggl/2.jpg" alt="description" />
        </figure>

      </div>
    </section>

感谢所有人,祝你有美好的一天。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 05:19:44

我可以看到两个问题:

Dropbox正在重定向您的下载,以便您返回的数据不是图像,而是Dropbox HTML页面。

尽管如此,我还是不能让你的画布画工作(这可能是可能的,但它不适合我)。我能够重构它以插入一个新的img标记,该标记带有从data-src设置的src。如果您在.images元素上设置了data-src,然后没有默认的canvas或img标记,这可能是最有效的。如果您真的想要宽度和高度属性,也可以这样做。

代码语言:javascript
复制
$(document).ready(function() {
    $('.container figure.images').each(function(i, e) {
    var url = $('img', e).attr('data-src');
    $(e).append($('<img>', { 'src': url }));
  });
});

我还将您的一个data-src值更改为"https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png“,以查看img是否正常工作,只是不适用于Dropbox版本。

HTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45000941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档