Div动画不重复点击在jquery
div animation not repeating on click in jquery
我试图动画div从窗外到里面每次我点击链接,但它只工作一次而不是再次,请帮助我哪里我错了。
<li>
<a id='ajaxLoad1' onclick='ajaxFunc(event, this);' href="url1">1st content</a>
</li>
<li>
<a id='ajaxLoad2' onclick='ajaxFunc(event, this);' href="url2">2nd content</a>
</li>
<div id='contentDiv' style="background: #98bf21; height: 200px; width: 800px; position: absolute;"></div>
function ajaxFunc(param, thisParam) {
param.preventDefault();
var href = $(thisParam).attr('href');
var position = '100px';
$('#contentDiv').css('margin-left','-100%');
$("#contentDiv").animate({right: position});
$('#contentDiv').load(href);
}
$('#contentDiv').css({
'right': 'initial',
'margin-left': '-100%'
});
只需在代码中将margin-left
更改为right
:
function ajaxFunc(param, thisParam) {
param.preventDefault();
var href = $(thisParam).attr('href');
var position = '100px';
$('#contentDiv').css('right','100%');
$("#contentDiv").animate({right: position});
$('#contentDiv').load(href);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li>
<a id='ajaxLoad1' onclick='ajaxFunc(event, this);' href="url1">1st content</a>
</li>
<li>
<a id='ajaxLoad2' onclick='ajaxFunc(event, this);' href="url2">2nd content</a>
</li>
<div id='contentDiv' style="background: #98bf21; height: 200px; width: 800px; position: absolute;"></div>
你可以使用这个技巧来重新初始化所有的style
$('#contentDiv').attr('style','background:#98bf21;height:200px;width:800px;position:absolute;');
$("#contentDiv").animate({left: '0px'});
在第一个动画的末尾元素有{'margin-left':'-100%', 'right': '100px'}
。
元素没有重置到它的原始设置,所以在第二个动画开始时它仍然有{'margin-left':'-100%', 'right': '100px'}
。
.css()
和.animate()
指令处理相同的属性,例如margin-left
。这样,.css()
指令将作为动画的重置。
$('#contentDiv')
.css('margin-left', '-100%')
.animate({'margin-left': 0})
.load($(thisParam).attr('href'));
将#contentDiv
替换为以下内容:
<div id='contentDiv' style="background:#98bf21; height:200px;
width:800px; position:absolute; ">
<a href='#' class='closeme'>move me back</a>
<div class=""></div>
</div>
并将jquery
替换为以下
$("#ajaxLoad1").click(function(){
var href = $(this).attr('href');
var position = '100px';
$('#contentDiv').css('left','100px');
$("#contentDiv").animate({right: position});
$('#contentDiv > div').load(href);
return false;
})
$(".closeme").click(function(){
$(this).parent().css({
'left' : '-1000px'
});
})
试试这个:
function ajaxFunc(param, thisParam) {
param.preventDefault();
var href = $(thisParam).attr('href');
var position = '100px';
// Need to reset
$('#contentDiv').css({
'marginLeft': 0,
'right': 0
});
$('#contentDiv').css('margin-left','-100%');
$("#contentDiv").animate({right: position});
$('#contentDiv').load(href);
}
裁判:http://jsbin.com/derofu/1/edit?html、js、输出
相关文章:
- 剑道网格jQuery动画()问题
- jquery动画可以通过编程链接吗
- JQuery动画延长容器不起作用
- 如何正确编程jQuery动画与平滑(导航栏)
- jQuery动画-边框宽度和颜色
- 如何抽象JQuery动画方法
- jQuery动画标题滚动
- JQuery - 为什么 JQuery 动画是同时进行的
- 如何用jquery动画改变背景颜色,就像一个过渡
- 正在等待jQuery动画完成
- 如何优化jquery动画代码
- jQuery动画的持续时间就像一个延迟
- 创建一个类似Jquery动画的Flipboard弹出窗口
- 应用jQuery动画时出现意外的抖动效果
- 如何设置'auto'JQuery动画中的高度
- jQuery动画缩放需要我点击主体
- 如何将jquery动画应用于单个项目
- 如何简化jquery动画函数代码
- 使用 jquery 动画幻灯片使用角度中继器切换
- Jquery动画和when函数