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 EasyUI API 中文文档 - ComboGrid 组合表格
Oct 13 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
node.js中的fs.renameSync方法使用说明
Dec 16 Javascript
在JavaScript中正确引用bind方法的应用
May 11 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 Javascript
详解JavaScript跨域总结与解决办法
Oct 31 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
微信小程序实战之自定义抽屉菜单(7)
Apr 18 Javascript
Vue使用zTree插件封装树组件操作示例
Apr 25 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
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
汽车装潢店创业计划书范文
2014/02/05 职场文书
师范生自我鉴定
2014/03/20 职场文书
寄语学生的话
2014/04/10 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
在人间读书笔记
2015/06/30 职场文书