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 相关文章推荐
动态调用css文件——jquery的应用
Feb 20 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
Nov 11 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
浅谈jQuery事件绑定原理
Jan 02 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
Javascript实现字数统计
Jul 03 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
Angular.js跨controller实现参数传递的两种方法
Feb 20 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
Node学习记录之cluster模块
May 31 Javascript
详解React native fetch遇到的坑
Aug 30 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
Vue.js实现价格计算器功能
2020/03/30 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
计算机专业自荐信
2013/10/14 职场文书
电气技术员岗位职责
2013/11/19 职场文书
自我评价200字分享
2013/12/17 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
房地产项目合作意向书
2015/05/08 职场文书
入党心得体会
2019/06/20 职场文书
导游词之无锡梅园
2019/11/28 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
总结高并发下Nginx性能如何优化
2021/11/01 Servers
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL