变量w/JQuery选择器破坏了我的代码

Variable w/ JQuery selector breaks my code

本文关键字:坏了 我的 代码 选择器 JQuery 变量      更新时间:2023-09-26

变量中的jQuery选择器出现问题。哦,HTML(背景图像:url('OME-image-url'))有一个内联样式,而不是样式表。

我似乎无法制作这个JS/JQuery脚本。它完全打破了剧本。

var contentHeight = $(this).css('background-image').height();

完整代码:

var sliderWidth = 0;
$(".slider li").each(function() {
    var contentHeight = $(this).css('background-image').height();
    sliderWidth = sliderWidth + 100;
    $(".slider ul li").css("height",contentHeight);
});
var sliderContentWidth = sliderWidth/100;
$(".slider").css("width",sliderWidth + "%");
$(".slider li").css("width",100/sliderContentWidth + "%");
setInterval(function(){ 
    $(".slider ul").css("right",100/sliderContentWidth + "%");
}, 5000);
$.css()

上面的函数(jQuery.css())返回给定属性的css值;在你的情况下是一根绳子。不过字符串没有.height()方法。

所以在你的线路上。。

var contentHeight = $(this).css('background-image').height();

这是真的发生了。。

  1. 对CCD_ 1进行评价;并返回一个jQuery实例
  2. .css('background-image')在jQuery实例上运行,并返回字符串(映像名称)
  3. .height()在字符串上运行。。。但它并不存在。。哦

不过,在您的场景中,元素本身的高度可能就足够了。

$(this).height() 

特别是考虑到默认情况下,如果背景比元素小,它只会重复,如果背景大,它不会溢出。

超越问题,并在下面的评论后澄清:

你想要背景图像的大小吗?这在现实中没有多大用处。请查看W3文档中的背景属性。

如果图像小于其应用的元素,则background-repeat属性默认为repeat。最终结果背景呈现整个元素

如果图像大于它所应用的元素,那么它在元素边界之外是不可见的。这就是精灵工作的原因。最终结果背景呈现整个元素

这种行为可以使用不同的属性来改变,但在你的场景中似乎不是这样。所以本质上,元素的高度就是背景的高度。

如果你想获得图像的实际尺寸,那么你需要使用<img>元素,作为DOM元素,它确实有height()width()方法/属性。(尽管这需要绝对定位,可能还需要一些z索引;如果你需要这样做,那么最好重新考虑你正在做的事情)