【问题标题】:jQuery - Getting an elements "left" position and then change itjQuery - 获取元素“左”位置然后更改它
【发布时间】:2015-09-13 22:14:20
【问题描述】:

我正在尝试使用自定义 jquery 操作滑块脚本。我需要抓取元素“左”css 样式位置,然后通过添加 300px 来更改它。

这是我的 jquery:

var slCon = $('.slides-control');
var pos = slCon.css("left");
slCon.css({'left': pos + '300px'});

如果我“alert(pos)”它确实给了我内联左侧的位置,比如 -1000。但是我需要能够在该内联样式中添加 300px 以在单击按钮时使其变为 -700。在获取初始值后,我似乎无法让它改变元素的内联样式。

请帮忙。我还在学习 jQuery。

【问题讨论】:

  • slCon.css({'left': pos + 300 + 'px'});

标签: jquery styles inline


【解决方案1】:

苏。我让它工作了,因为元素宽度与元素左侧位置匹配,但左侧为负数。所以我只是抓住了元素的宽度,然后用这个设置左边的位置:

var slCon = $('#slides-control');
var width = slCon.width();
slCon.css({'left': - width + 300 + 'px'});

感谢所有帮助出租车

【讨论】:

    【解决方案2】:

    你应该这样做:

    var slCon = $('.slides-control').first();
    var pos = slCon.css("left");
    slCon.css({'left': pos + 300});
    

    或者更好,改成id(记得相应地更新dom):

    var slCon = $('#slides-control');
    var pos = slCon.css("left");
    slCon.css({'left': pos + 300});
    

    【讨论】:

    • 感谢您的快速回复,但这似乎也没有改变价值
    • 已编辑,我认为您不需要提供 px。立即尝试。
    • 那也不行。 :)
    • 我注意到您正在按类进行选择,这将返回一个数组,让我们尝试将其更改为 id 并查看它是否有效,或者选择查询的第一个元素。请在一分钟内检查我的编辑。
    • K.我这样做了,这实际上是一个好主意,但它仍然不起作用。我仍然可以提醒 #slides-control 并获得“左”值,因此 id 更改在 jQuery 和 DOM 端起作用。
    【解决方案3】:

    试试这个:

    $('.slides-control').css('left','+=300px');

    【讨论】:

    • 这是一种非常老套的方法。更好的方法是解析出实际“左”位置的 int,将 300 添加到该值并与“px”连接;
    • @fscof :这是一个好方法。它一点也不hacky。阅读更多:Jquey API
    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    相关资源
    最近更新 更多