jquery阻止重定向,直到动画之后
jquery prevent redirect until after animation
这段代码非常有效,除非你点击链接。在jquery更改之前,页面会被重定向,以视觉方式将边距动画化回零。有没有一种方法可以防止重定向,直到jquery将边距动画化回零?
HTML
<div id="sidebar">
<div class="navigation">
<ul>
<a href="../../../index.html"><li><img src="dbs/images/home.png" title="" width="40" height="38" />به عقب</li></a>
<a href="../../000_Movies/_assets/playlist.html"><li>فیلم ها</li></a>
<a href="../../020_IAM/_assets/playlist.html"><li>وزارتخانه ها ایران زنده</li></a>
<a href="../../080_Worship/_assets/playlist.html"><li>پرستش</li></a>
<a href="../../330_Teen/_assets/playlist.html"><li>جوانان</li></a>
<a href="../../300_Children/_assets/playlist.html"><li>کودکان</li></a>
<a href="../../400_Testimony/_assets/playlist.html"><li>پزوهش ها</li></a>
<a href="../../600_SOC/_assets/playlist.html"><li>دانشکده مسیح</li></a>
<a href="../../750_Women/_assets/playlist.html"><li>زنان</li></a>
<a href="../../800_BAHAM/_assets/playlist.html"><li>کلیپ های سری</li></a>
</ul>
</div>
</div>
JS-
$('.navigation a li').click(function () {
$('.slider').animate({
marginLeft: 0
}, 500);
});
.animate()接受回调函数,如下所示:
$('.navigation a li').click(function () {
$('.slider').animate({
marginLeft: 0
}, 500,function() {
//thing to do when you animation is finished e.g.
location.href = 'http://redirect.to.url';
});
});
有关完整的文档,请查看(非常有用的)jQuery文档:http://api.jquery.com/animate/
首先,您的HTML无效。将链接放在列表项中,而不是相反。相应地调整选择器(.navigation li a
)。
接下来,既然您在链接而不是列表项上设置了事件,那么就让您的处理程序:
- 阻止默认事件
- 向动画添加回调,以便在动画结束时页面转到
this.getAttribute('href')
这样就可以了。
停止li
点击处理程序的事件传播。
$('.navigation a li').click(function (e) {
$('.slider').animate({
marginLeft: 0
}, 500);
e.stopPropagation();
});
相关文章:
- 如何在一个元素动画之后延迟
- 每次在动画之后完全删除该元素.- 仅使用 CSS
- 将项目放在动画和 inserbefore 函数混乱之后
- Javascript:在css动画之后继续执行
- 如何将角度动画延迟到模型绑定之后
- 在页面加载的所有其他文件之后加载动画 gif
- 在jQuery的显示和隐藏动画之后添加类
- $.each 之后的回调带有动画
- 在此之后,我如何为另一种颜色制作动画
- JavaScript在CSS3动画之后不显示任何内容
- jquery阻止重定向,直到动画之后
- Boostrap远程模式:将动画延迟到加载之后
- Jquery.html之后的DIV动画
- setdata之后的Highcharts加载动画
- CSS3最后一帧动画之后的循环在动画序列中完成
- 在Angular JS中,如何在动画之后触发控制器函数
- 动画:在使用Jquery之后
- location.reload()在jQuery动画之后不起作用
- jQuery .slidDown() 动画之后的边距更改
- jQuery 滚动到元素动画之后的元素