請問您如何在用戶滾動div時突出顯示底部li?我有一個容器div
,其中有四個divs
。在頁腳中我也有四個li
(第一,第二,第三,第四)。我想在用戶滾動各個div時選擇li
(背景變爲紅色)。如何在用戶滾動div時突出顯示底部li?
例
當代碼運行時,第一li
應選擇,因爲第一個div是在視口它背景變成紅色。如果用戶滾動並移動到第二個div,則應選擇第二個li
。等等。
我想這樣的
https://jsbin.com/giwizufotu/edit?html,css,js,output
(function(){
'use strict';
$(function(){
$("#container").scroll(function() {
console.log('scrlling');
if (elementInViewport2($('#first'))) {
// The element is visible, do something
console.log('first visible')
} else {
console.log('second visible')
}
});
})
function elementInViewport2(el) {
var top = el.offsetTop;
var left = el.offsetLeft;
var width = el.offsetWidth;
var height = el.offsetHeight;
while(el.offsetParent) {
el = el.offsetParent;
top += el.offsetTop;
left += el.offsetLeft;
}
return (
top < (window.pageYOffset + window.innerHeight) &&
left < (window.pageXOffset + window.innerWidth) &&
(top + height) > window.pageYOffset &&
(left + width) > window.pageXOffset
);
}
})()
我不想使用插件
因爲所有'li'都比視口大。你擁有的邏輯將無法正常工作。更好的方法是檢查它們相對於視口的頂部位置,然後決定距離視口頂部多遠,在視圖中考慮它 – LGSon
可以請您在小提琴或jsbin中共享視圖 – user5711656