tangram框架响应式加载图片方法


Posted in Javascript onNovember 21, 2013

各种网站经常看到页面滚动到可视区域,然后才加载相应的图片资源,他的本质是什么呢?本文来分析一下很简单,就是判断当前元素是否是可视区域内

假设:h1 = 滚动条滚去的高度
w1 = 滚动条滚去的宽度
h2 = 屏幕的高度
obj 表示当前对象 {x:当前对象相对于文档左上角的位置x,y:当前对象相对于文档左上角的y}

则应该这样判断
在y轴方向上:if(obj.x>h1&&obj.x<h1+h2||obj.x+obj.offsetHeight>h1&&|obj.x+obj.offsetHeight<h1+h2){loading()}
同理在X轴方向上以此类推

如果使用tangram框架的话可以这样写:

baidu.more = baidu.more||{};
baidu.more.scrollLoading = (function(){
var top = baidu.page.getScrollTop(),
left = baidu.page.getScrollLeft(),
viewHeight  = baidu.page.viewHeight(),
viewWidth  = baidu.page.viewWidth();
var scrollLoad = function(element){
   var obj = baidu.g(element)||{};
   var pos = baidu.dom.getPosition(element);
if((pos.top>top&&pos.top<top+viewHeight)||
(pos.top+obj.offsetHeight>top&& pos.top+obj.offsetHeight<top+viewHeight)||
(pos.left>left&&pos.left<left+viewWidth)||
(pos.left+obj.offsetWidth>left&&pos.left+obj.offsetWidth<left+viewWidth)){
loading();
};
 return {
scrollLoad :scrollLoad 
} 
})()
Javascript 相关文章推荐
jquery图片放大功能简单实现
Aug 01 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
弱类型语言javascript中 a,b 的运算实例小结
Aug 07 Javascript
解决layui下拉框监听问题(监听不到值的变化)
Sep 28 Javascript
vue实现简单跑马灯效果
May 25 Javascript
React冒泡和阻止冒泡的应用详解
Aug 18 Javascript
vue中是怎样监听数组变化的
Oct 24 Javascript
使图片旋转的3种解决方案
Nov 21 #Javascript
js单例模式详解实例
Nov 21 #Javascript
Ajax同步与异步传输的示例代码
Nov 21 #Javascript
jquery与prototype框架的详细对比
Nov 21 #Javascript
Tab切换组件(选项卡功能)实例代码
Nov 21 #Javascript
JS仿百度搜索自动提示框匹配查询功能
Nov 21 #Javascript
探讨javascript是不是面向对象的语言
Nov 21 #Javascript
You might like
桌面中心(三)修改数据库
2006/10/09 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python数据操作方法封装类实例
2017/06/23 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
python安装scipy的步骤解析
2019/09/28 Python
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
班组长工作职责
2013/12/25 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
简单的辞职信模板
2015/05/12 职场文书
我的中国梦主题班会
2015/08/14 职场文书
《包身工》教学反思
2016/02/23 职场文书
七年级作文之冬景
2019/11/07 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
vue实现拖拽交换位置
2022/04/07 Vue.js
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技