我已经按照本教程学习了如何编写一些jQuery来在我的网站上获得一个漂亮的平滑滚动。这是你参考{t 3}}
的啧啧然而,在我的jQ代码中似乎存在一个问题并且动画无法正常工作......如果有一套新的眼睛就可以看到我出错的地方以及如何修复它会很不错。
到目前为止,控制台告诉我,我有这个问题TypeError: Cannot read property 'top' of undefined
这是我目前的版本 https://www.youtube.com/watch?v=S6pzabpUmoc
这是我的jQ代码
$(function() {
// catch all clicks on page
$('a').click(function() {
// check if has hash
if(this.hash) {
// get rid of the # sign
var hash = this.hash.substr(1);
//get the position of the <a name>
var $toElement = $("a[name="+hash+"]");
var toPosition = $toElement.position().top;
// scroll / animate that element
$ ('body,html').animate({
scrollTop : toPosition
},2000,"easeOutExpo");
// don't do the jump
return false;
}
});
if(location.hash) {
var hash = location.hash
window.scroll(0,0);
$('a[href='+hash+"]").click();
}
});
答案 0 :(得分:1)
下面&#39;哈希&#39;肯定是你有一个erorr,Uncaught TypeError:无法读取属性&#39; left&#39;由于未定义的元素属性访问而发生未定义。
$toElement = = $("a[name="+hash+"]"); // this hash is undifined or wrong value
// this lead following line to throw the error
var toPosition = $toElement.position().top;
答案 1 :(得分:0)
因为$("a[name="+hash+"]")
没有返回任何内容。也许你应该检查它是否在动画开始前返回一些东西。就像这样:
if($toElement.length){
// do something
}