好吧,我有这个漂亮的小网站,它有一个div overflows:hidden
内容不适合包装。每次点击一个范围margin-top: $value-120px
,我想class'd .maisfilme
。这就是我得到的
$(document).ready(function (){
$(".maisfilme").on("click", function() {
var $mtop = $(this).css('margin-top');
var $vai = (parseInt($mtop)+ 110 + "px");
$("#filme").css ({
'margin-top' : "-"+$vai
});
});
});
它实际上完成了这项工作。它获得了margin-top,增加了它的int值+ 120px,在它之前放了一个 - 然后滑动div。
真正的问题是它只发生在ONCE。如果我再次点击.maisfilme
,则不会发生任何事情
有人可以知道我该怎么办,所以每次点击.maisfilme
时函数都会动作吗?
答案 0 :(得分:0)
第二次你这样做 - ( - 110 + 110)并没有像你想要的那样增加幅度。如果你想让它每次都变得更负,你需要改变符号的逻辑。
此外,您从$(this)
获取css,但在$("#filme")
上设置它,因此每次都不会上升,除非它们恰好是同一个对象。每次点击都需要积累它们。
每次让它变得更负面,你可以这样做:
$(document).ready(function (){
$(".maisfilme").on("click", function() {
var $mtop = $(this).css('margin-top');
var $vai = (parseInt($mtop) - 110) + "px";
$(this).css ({
'margin-top' : $vai
});
});
});
或略有不同的版本,如果margin-top的初始值不为零(更像您的第一次迭代所做的那样),则会产生稍微不同的结果:
$(document).ready(function (){
$(".maisfilme").on("click", function() {
var $mtop = $(this).css('margin-top');
var $vai = (-(Math.abs(parseInt($mtop)) + 110)) + "px";
$(this).css ({
'margin-top' : $vai
});
});
});