jQuery数值大于判断受限?滚动图片切换功能异常求助
问题原因及解决方案
嘿,我帮你定位到问题啦!你遇到的这个判断异常,核心原因是**jQuery.css('left')返回的是带单位的字符串(比如"-1200px"),而你直接和数值类型的igMaxLeft做比较时,JavaScript的类型转换逻辑会导致意外结果**。
具体来说:
- 当你写
igBase.css('left') > igMaxLeft时,igBase.css('left')是带px后缀的字符串,比如"-1200px"。 - JavaScript尝试把这个字符串转为数值时,因为包含非数字的
px,会得到NaN。NaN和任何数值比较的结果都是false,这就导致你的判断逻辑完全失效,出现看起来像是被限制在-1200px的奇怪现象。
解决办法
你需要把left的值转换成纯数值再做比较,有两种简单的方式:
方式1:使用parseInt()提取数值
把判断条件改成:
if(parseInt(igBase.css('left'), 10) > igMaxLeft)
parseInt()会忽略字符串末尾的非数字部分,提取出-1200这样的纯数值,就能和igMaxLeft正常比较了。
方式2:用jQuery的position()方法直接获取数值
position().left返回的是不带单位的数值,代码更简洁:
if(igBase.position().left > igMaxLeft)
这两种方式都能解决你的判断逻辑问题,建议用第二种,因为更直接且避免了字符串解析的潜在问题。
内容的提问来源于stack exchange,提问作者Arinthros
相关产品推荐
相关产品推荐

