【问题标题】:How to find length of the li when the parent div is 1000%?当父 div 为 1000% 时如何找到 li 的长度?
【发布时间】:2015-09-18 10:18:56
【问题描述】:

我实际上正在研究一个滑块,我想找到 li 元素的宽度。

<div class="slider"><div class="touch-slider-viewport">
<ul style="width: 1000%; transition: 0.5s; transform: translate3d(0px, 0px, 0px);">
    <li>

    <div>
        <img src="images/01.jpg">
        <p>Something Something </p>
    </div>

    </li>
   </ul>

我尝试过使用$('li').width(),当我通过我的 js 传递它时,它给了我一些不同的宽度,但是当我在控制台中尝试它时,它给了我正确的 li 元素宽度。我认为这是因为我为父元素提供了 1000% 的宽度。知道如何获得 li 的宽度吗?

CSS:

@media all and (min-width: 1024px) {
    .slider li{
    width:2.38%;
}

}
@media (min-width: 504px) and (max-width: 1023px)  {
.slider li{
    width:3.3%;
}
}
@media all and (max-width: 503px) {
.slider li{
    width:4.6%;
}
}

.slider li{
    margin-left:8px;
    margin-right:8px;

}

【问题讨论】:

  • 试试parseFloat($('li').css('width'))。 jQuery 的width() 方法在某些情况下可能会返回错误或不一致的结果。
  • 取决于您何时检查它......显示完整代码。检查时是否加载了图像?元素也可见吗?如果没有完整的详细信息,问题就不清楚
  • 您需要在文档准备好之后调用 javascript 以避免任何不一致......也是 1000px 还是 1000% ?您还可以使用浏览器开发者工具检查li 的宽度(Chrome 中的示例:puu.sh/keUyo/3c7690a95d.png
  • @Aziz 抱歉,我只是在试验 1000px,我现在已经编辑过了。是的,我可以看到宽度,但我需要变量中的宽度。当我通过 JS 执行此操作时,它给了我错误的宽度,准确地说,它给了我值 width/10。我很困惑为什么要这样做。
  • 非常感谢你们的帮助。在我打电话后声明宽度是我的愚蠢错误。现在已经修好了。

标签: javascript jquery html css slider


【解决方案1】:

更新

我实际上认为使用width() 应该没问题。我认为这不是问题(使用width()innerWidth() 更好,所以坚持下去)。

如果您能提供更多关于何时收到错误宽度的详细信息(当您“通过您的 js”传递它时),我们可能会提供更多帮助,但这可能是一个加载问题(如果页面没有) t 完全渲染并且您尝试获取元素的宽度,您可能会得到不准确的结果)。

如果控制台返回正确的宽度,那么我认为不是 width() 函数有问题。


尝试使用innerWidth()

$('li').innerWidth()

http://api.jquery.com/innerwidth/

【讨论】:

  • 非常感谢您的帮助。在我打电话后声明宽度是我的愚蠢错误。现在已经修好了。
  • @user1819887 - 没问题,我不认为使用width 会是问题所在。很高兴你把它整理好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多