我的网站上有一个脚本,当使用以下代码很好地点击链接时,它会向下滚动到页面的给定区域:
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 800);
return false;
}
}
});
});
这与此HTML的使用相结合
<a href="#thinig">Go to the thing!</a>
<a href="#thinig2">Go to the other thing!</a>
<div id="thing">
<h3>A new title</h3>
<p>Thing is here<p>
</div>
<div id="thing2">
<h3>The other stuff title</h3>
<p>Thing two is here<p>
</div>
向下滚动到&#34;&#34;&#34;很好地,并按预期工作。但是,我希望-tag在用户到达内容时以不同于文本的默认颜色的颜色闪烁一次,然后单击并向下滚动。怎么办呢?
提前致谢。
答案 0 :(得分:0)
我建议使用&#39;完成&#39;来自animate的回调:
http://api.jquery.com/animate/
$('html,body').animate({
scrollTop: target.offset().top
}, 800,function(){
//highlight here
});
答案 1 :(得分:0)
您可以使用jquery highlight example的“突出显示”效果,或者使用脉动效果pulsate here
代码看起来像这样:
HTML
<a href="#thinig">Go to the thing!</a>
<div id="thing">
<h3>A new title</h3>
<p>Thing is here<p>
</div>
JS
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 800, function(){
$('#thing').effect( "highlight",
{color:"#669966"}, 3000 );
});
return false;
}
}
});
});
答案 2 :(得分:0)
您可以在使用js添加类时使用css3过渡和关键帧,然后在完成动画后删除类(使用setTimeout在相同的持续时间内使用css过渡删除类)。