顶部滚动-可替代preventDefault()函数
Scroll top - alternative to preventDefault() function
下面脚本中的preventDefault()函数(参见实际示例http://jsfiddle.net/E6MQd/)在某些情况下会导致附带问题。我如何调整我的代码来摆脱它?
Edit:我应该说得更具体一些。当我说附带问题时,我指的是防止打开一个花哨的弹出框。见这里http://goo.gl/cZgzqq(链接到简报花式盒子在页面底部的提交按钮下面-当我点击它什么也没有发生)
许多谢谢,//==============
//! Smooth scrolling
//==============
$(document).ready(function(e) {
$('a[href*=#]:not([href=#])').click(function (ev) { // Added 'ev' parameter
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) {
ev.preventDefault(); // We're animating this, so don't let the browser try to navigate to this URL
$('html,body').animate({
scrollTop: target.offset().top - 100
}, 'normal');
}
}
});
window.onscroll = scrollFunction;
function scrollFunction() {
var doc = document.documentElement, body = document.body;
var top = (doc && doc.scrollTop || body && body.scrollTop || 0);
if (top > 200) {
$('.back-to-top').fadeIn();
}
else {
$('.back-to-top').fadeOut();
}
}
});
既然你没有说问题是什么。我猜问题是你的"重回巅峰"不够生动。下面是解决方案:
$('a[href*=#]').click(function (ev) {
if (location.pathname.replace(/^'//, '') == this.pathname.replace(/^'//, '') && location.hostname == this.hostname)
{
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
ev.preventDefault();
if (target.length) { //this is for going to contact page
$('html,body').animate({
scrollTop: target.offset().top - 100
}, 'normal');
}
else{ //this is for going to the top
$('html,body').animate({
scrollTop: 0
}, 'normal');
}
}
});
JSFiddle
相关文章:
- 我怎样才能制作一个“;reverse preventDefault”;在jQuery中
- IE7 preventDefault()无法处理跳过链接
- e.preventDefault在表单提交时被忽略
- preventDefault而不删除html5验证
- event.preventDefault阻止ajax调用
- jQuery preventdefault提交表单没有'通过js函数提交表单时无法工作
- 事件发生后重定向到主页.preventDefault.
- 是preventDefault()一个jQuery函数或javascript函数
- preventDefault之后的重新启动事件
- preventDefault()赢得'It’我不管用
- 为什么使用e.preventDefault的if语句?-拖放javascript
- event.preventDefault() 不会在 jQuery Mobile 中取消链接方向
- preventDefault() 类似于 javascript 中的功能
- e.preventDefault() in ie8
- 如果父元素具有 preventDefault,如何将单击传播到子元素
- Javascript - jQuery preventDefault method
- Javascript-匿名函数中使用参数引用全局函数的闭包-我如何使用preventDefault
- 如何查找导致preventDefault的原因,该preventDefault会覆盖正常的单击行为
- 如果存在event.preventDefault函数,则ajaxForm不起作用
- Javascript preventDefault operation