-
题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现
function isVisible($node){
var winH = $(window).height(),
offsetH = $e.offset().top,
scrollH = $(window).scrollTop()
if ((offsetH > scrollH) && (offsetH < scrollH + winH)) {
return true
}
return false
}
* 题目2:当窗口滚动时,判断一个元素是不是出现在窗口可视范围。每次出现都在控制台打印 true 。用代码实现
<p class="ppp">文字文字文字</p>
<script>
var $e = $(".ppp");
$(window).on("scroll",function(){
isVisible($e)
});
function isVisible($e){
var winHeight = $(window).height(),
WinTop = $(window).scrollTop(),
offsetTop = $e.offset().top
if(offsetTop < winHeight+WinTop){
console.log("位于可视区域内")
return true
}else{
return false
}
}
</script>
* 题目3:当窗口滚动时,判断一个元素是不是出现在窗口可视范围。在元素第一次出现时在控制台打印 true,以后再次出现不做任何处理。用代码实现
<p class="ppp">文字文字文字</p>
<script>
var $e = $(".ppp");
var flag = true;
function isVisible($e){
var winHeight = $(window).height(),
WinTop = $(window).scrollTop(),
offsetTop = $e.offset().top
if(offsetTop < winHeight+WinTop){
return true
}else{
return false
}
}
$(window).on("scroll",function(){
//isVisible($e)
if (isVisible($e) && flag) {
console.log('true');
flag = false;
}
});
</script>
* 题目4: 图片懒加载的原理是什么?
答:
图片懒加载也称为曝光加载,将页面上的图片分批加载,只有当图片出现在window窗口中(用户可见)的时候,才加载图片;而正常情况下,img元素是自动加载的,所以可以自定义一个图片地址属性,当需要加载图片的时候,将该自定义属性值赋给src属性,以实现优化页面的渲染速度,图片延迟加载。
* 题目5: 实现视频中的图片懒加载效果
[在线预览](http://book.jirengu.com/jirengu-inc/jrg-renwu7/members/%E6%96%BD%E4%B8%9C%E7%85%8C/%E8%BF%9B%E9%98%B616/16-5.html)
* 题目6: 实现视频中的新闻懒加载效果
[本地测试无问题](http://book.jirengu.com/jirengu-inc/jrg-renwu7/members/%E6%96%BD%E4%B8%9C%E7%85%8C/%E8%BF%9B%E9%98%B616/16-6.html)
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/2858982-1f1d985536db3c20.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)