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 相关文章推荐
javascript document.images实例
May 27 Javascript
JavaScript高级程序设计 DOM学习笔记
Sep 10 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
js window.open弹出新的网页窗口
Jan 16 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
jquery实现翻动fadeIn显示的方法
Mar 05 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
JavaScript接口的实现三种方式(推荐)
Jun 14 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
微信小程序的授权实现过程解析
Aug 02 Javascript
JS实现鼠标移动拖尾
Dec 27 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
CI框架中zip类应用示例
2014/06/17 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
python如何为被装饰的函数保留元数据
2018/03/21 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python程序封装为win32服务的方法
2021/03/07 Python
Python安装selenium包详细过程
2019/07/23 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
openCV提取图像中的矩形区域
2020/07/21 Python
python中spy++的使用超详细教程
2021/01/29 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
寄语学生的话
2014/04/10 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
综合素质评价自我评价
2015/03/06 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP