如何设置由链接触发的过渡的动画
How to animate transitions triggered by links
我发现这个有用的jQuery用于导航,它在链接内容滚动时突出显示。我想我理解这是如何工作的,但我在为点击的项目包括转换/动画时遇到了困难。我希望这些部分在被导航触发时能够平稳过渡。
我已经尝试将其添加到CSS 中
.section {
transition: transform .5s ease-in-out;
}
以及jQuery
$('#navigation').click(function(){
$('.section').animate('slow');
});
如果能解释一下我在这个例子中做错了什么,我将不胜感激。
这是代码和https://jsfiddle.net/r040p7oa/
<div id="navigation">
<ul>
<li><a href="#section1">Section 1</a></li>
<li><a href="#section2">Section 2</a></li>
</ul>
</div>
<div id="sections">
<div id ="section1" class="section">I'm section 1</div>
<div id ="section2" class="section">I'm section 2
</div>
#sections {
position: absolute;
top: 0;
left: 120px;
}
#navigation {
position: fixed;
top: 0;
left: 0;
}
.active {
background: red;
}
.section {
padding-bottom: 400px;
}
-
$(window).scroll(function() {
var position = $(this).scrollTop();
$('.section').each(function() {
var target = $(this).offset().top;
var id = $(this).attr('id');
if (position >= target) {
$('#navigation > ul > li > a').removeClass('active');
$('#navigation > ul > li > a[href=#' + id + ']').addClass('active');
}
});
});
https://jsfiddle.net/r040p7oa/
$('a').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
工作小提琴:)代码从这里
这应该做到:
$('a').click(function(e) {
e.preventDefault();
$('body, html').animate({scrollTop:$($(this).attr("href")).offset().top});
});
这是JSFiddle演示
相关文章:
- 如何设置html元素填充的动画
- 如何使用动画实现纸张推车
- 如何在生成下载文件时显示加载动画
- 剑道网格jQuery动画()问题
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- jQuery Lazy加载动画滚动
- jquery动画可以通过编程链接吗
- Javascript将数学动画化
- 动画.CSS重播
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 如何使用jQuery在动画中期加速动画
- 使用数据上的角度更改设置集合的第一个元素的动画
- 如何使用css动画/javascript使具有背景图像的元素出现
- 如何使用css动画从中心增加边界线
- JQuery动画延长容器不起作用
- 动画CSS进度条
- JavaScript动画从不执行
- 更多延迟动画
- 如何设置由链接触发的过渡的动画
- 当动画元素接触鼠标时触发mouseenter