【问题标题】:bx slider - get height and width of the imagesbx 滑块 - 获取图像的高度和宽度
【发布时间】:2013-12-21 20:45:03
【问题描述】:

我正在尝试获取 bx 滑块幻灯片中图像的高度和宽度,问题是它们中的每一个(没有加载的第一个)都返回

这是我的代码示例:

$('.slides > li > img').each(function(){

    var $this = $(this);
    var imgWidth = $this.width();
    var imgHeight = $this.height();

    console.log(imgWidth);
    console.log(imgHeight);

})

我还尝试将它们放在这样的加载函数中:

$('.slides > li > img').each(function(){


    $this.on('load', function(){

    var $this = $(this);
    var imgWidth = $this.width();
    var imgHeight = $this.height();

    console.log(imgWidth);
    console.log(imgHeight);

 }
})

...但是还是不行=\

任何帮助将不胜感激!

编辑:

这是一个小提琴:http://jsfiddle.net/a3BUA/1/

编辑 2:

我现在看到,当模式设置为淡出时 - 其余的 <li> 元素设置为 display:none。尽管如此,有没有办法获得图像尺寸?

【问题讨论】:

  • 添加您的 html 以显示您要选择的内容
  • 我猜只有第一个图像是可见的,所以其他图像设置为不显示或类似的东西,如果没有一些技巧,你无法获得隐藏图像的尺寸,并且是您试图获取图像的实际尺寸,或者 BX 滑块将它们设置为什么(可能对所有图像都相同)?
  • @adeneo 我现在看到,当模式设置为淡入淡出 - 其余的 <li> 元素设置为 display:none。尽管如此,有没有办法获得图像尺寸?
  • @jonasnas 这是小提琴jsfiddle.net/a3BUA/1
  • @Ziik - 当然,像这样 -> jsfiddle.net/a3BUA/3

标签: javascript jquery slider width bxslider


【解决方案1】:

滑块会隐藏除第一张图像以外的所有图像,并且隐藏的图像没有尺寸,因此您必须使用源(字面意思)创建一个新的图像对象,然后在图像加载后从中获取尺寸

$(document).ready(function () {
    $('.normal-slides').bxSlider({
        mode: 'fade',
        auto: false,
        pager: false
    });


    $('.normal-slides img').each(function () {
        var img = this;
        var new_img = new Image();
        new_img.onload = function() {
            console.log('imgWidth = ' + this.width)
            console.log('imgHeight = ' + this.height)
        }
        new_img.src = img.src;
    });
});

【讨论】:

  • 再次感谢您!还有一个问题 - 如果我为图像编写 css 规则,比如width: 100% (jsfiddle.net/a3BUA/4),有没有办法获得第三张幻灯片的新拉伸高度和宽度值,因为它原本更小?
  • 这会获取图像的实际大小,如果您正在寻找页面中显示的大小,则必须将图像插入 DOM 并使其在页面上可见,否则它不会有这些值,因为它在可见之前和它应该在的位置之前并不真正相对于父元素。
  • 我以为会是这样。感谢您花时间解释所有这些 =]
【解决方案2】:

试试类似的东西

$('.slider img').each(function(){
    $this = $(this);
    var imgWidth = $this.width();
    var imgHeight = $this.height();

    console.log(imgWidth);
    console.log(imgHeight);
});

Fiddle

【讨论】:

  • 感谢您的回答,但是我找不到我的代码的问题所在。我已经用我的部分代码更新了你的小提琴,问题出现了——第二张图像的高度和宽度为零。这是jsfiddle.net/a3BUA/1我也尝试了回调函数,但尺寸仍然为零 - jsfiddle.net/a3BUA/2
  • 哦,请参阅 编辑 2 到主帖。
猜你喜欢
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2017-05-23
  • 2011-11-26
  • 1970-01-01
  • 2011-01-02
相关资源
最近更新 更多