我似乎无法修复这些警告:
($window.width() <= 770) { return;
以下是脚本:
//StickyBox
$(function () {
$.fn.scrollBottom = function () {
return $(document).height() - this.scrollTop() - this.height();
};
var $StickyBox = $('.detailsBox');
var $window = $(window);
$window.bind("scroll resize", function () {
var gap = $window.height() - $StickyBox.height() - 10;
var footer = 288 - $window.scrollBottom();
var scrollTop = $window.scrollTop();
$StickyBox.css({
top: 'auto',
bottom: 'auto'
});
if ($window.width() <= 770) {
return;
$StickyBox.css({
top: '0',
bottom: 'auto'
});
}
if (scrollTop < 50) {
$StickyBox.css({
bottom: "auto"
});
} else if (footer > gap - 100) {
$StickyBox.css({
top: "auto",
bottom: footer + "px"
});
} else {
$StickyBox.css({
top: 80,
bottom: "auto"
});
}
});
});
无论如何还要更改以下脚本,所以我不需要给出一个数字,但它应该知道标题何时到达框然后固定它的位置?
if (scrollTop < 50) {
$StickyBox.css({
bottom: "auto"
});
答案 0 :(得分:1)
问题是如果这个“if”为真,那么它将永远返回,并且下一代代码行永远不会运行。
if ($window.width() <= 770) {
return;
$StickyBox.css({
top: '0',
bottom: 'auto'
});
}
如果你想设置顶部的软件:0和底部:自动你必须在此之后放回头。如果你的意思是只设置顶部和底部,如果它不是真的,那么你就错过了其他的东西:
if ($window.width() <= 770) {
return;
}else{
$StickyBox.css({
top: '0',
bottom: 'auto'
});
}
也许你的意思是
if ($window.width() <= 770) {
$StickyBox.css({
top: '0',
bottom: 'auto'
});
return;
}
答案 1 :(得分:0)
<强> 1 强>
我无法确定哪些行是7,9和10.但它与您为变量赋值的方式有关。它们可以用逗号分隔:
var gap = $window.height() - $StickyBox.height() - 10,
footer = 288 - $window.scrollBottom(),
scrollTop = $window.scrollTop();
<强> 2 强>
当您返回时,其余方法未执行。因此$StickyBox.css()
永远不会被召唤。如果$window.width() <= 770
是true
。我相信您要么删除.css()
来电,要么在被叫之后返回。
if ($window.width() <= 770) {
return;
} else {
$StickyBox.css({
top: '0',
bottom: 'auto'
});
}