我得到了以下代码来处理.animate,但它不会与标准的css属性一起,有人能告诉我为什么吗?
var xMove = 200;
$("#clickhere").click(function() {
$("#object").css({left: '+='+xMove});
});
现在有了一些类似的工作方法,并且一路上学习了一些语法,很好地展示了人们,Ta!
答案 0 :(得分:1)
您无法在常规CSS中使用+=
运算符。获取当前位置并从中计算新位置:
var xMove = 200;
$("#clickhere").click(function() {
$("#object").css({ left: ($('#object').position().left + xMove) + 'px' });
});
答案 1 :(得分:0)
尝试
$(document).ready(function(){
var xMove = 200;
var object = $('#object');
$("#clickhere").click(function() {
object.animate({
left: (object.position().left + xMove) + 'px'
});
});
});
请记住,使用css left属性时,#object需要具有绝对位置或相对位置。如果它是静态的,你可以尝试为margin-left设置动画。
答案 2 :(得分:0)
添加CSS属性position
,并将其设置为relative
;它会工作的。我还删除了+=
,因为它不属于那里:
var xMove = 200;
$("#clickhere").click(function() {
$("#object").css({position: "relative",left: xMove});
});
如果您想在每次点击object
时将xMove
定义的像素数向右移动,可以使用以下代码段:
var xMove = 200;
$("#clickhere").click(function() {
var obj = $("#object");
var currentPosition = obj.position().left;
obj.css({position: "relative",left: currentPosition + xMove});
});
答案 3 :(得分:0)
试试这个,应该有效,
var leftpos = $("#object").css("left"); // get the current left position
var left = parseFloat(leftpos , 10);
left += 200;
var toShift = left + "px";
$("#object").css("left", toShift );
答案 4 :(得分:0)
2件事。首先,除非您设置不同的left
类型,否则position
在CSS中不执行任何操作。因此,请确保#object
具有position:relative
(或绝对或固定)。
其次,你不能在值字符串中使用+=
。您必须获取值添加您的值,然后将其设置为执行此操作。
查看此工作示例:http://jsfiddle.net/d9LnJ/4/
但实际上,为什么不使用.animate
?