1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> #wrapper { height: 400px; width: 280px; overflow-y: scroll; background-color: black; } #inner { height: 1000px; }
#wrapper2 { height: 280px; width: 400px; overflow-x: scroll; background-color: black; } #inner2 { width: 1000px; } </style> </head> <body> <h1>触底触顶检测</h1> <div id="wrapper"> <div id="inner"></div> </div> <hr> <h1>触左触右检测</h1> <div id="wrapper2"> <div id="inner2"></div> </div> <script> let $wrapper = document.getElementById('wrapper'); $wrapper.addEventListener('scroll', (({target}) => { let touchBottom = target.clientHeight + target.scrollTop === target.scrollHeight, touchTop = target.scrollTop === 0; console.log(`touchBottom: ${touchBottom}`); console.log(`touchTop: ${touchTop}`); if(touchBottom) { alert('滚动触底了!'); } else if(touchTop) { alert('滚动触顶了!'); } }))
let $wrapper2 = document.getElementById('wrapper2'); $wrapper2.addEventListener('scroll', (({target}) => { let touchRight = target.clientWidth + target.scrollLeft === target.scrollWidth, touchLeft = target.scrollLeft === 0; console.log(`touchRight: ${touchRight}`); console.log(`touchLeft: ${touchLeft}`); if(touchRight) { alert('滚动触右了!'); } else if(touchLeft) { alert('滚动触左了!'); } })) </script> </body> </html>
|