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 函数式编程
Aug 16 Javascript
ext实现完整的登录代码
Aug 08 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
Aug 10 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
让table变成exls的示例代码
Mar 24 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
Mar 28 Javascript
javascript检测两个数组是否相似
May 19 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
Jul 22 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 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根据IP地址获取所在城市具体实现
2013/11/27 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
Laravel 5 学习笔记
2015/03/06 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
python爬虫框架talonspider简单介绍
2017/06/09 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
法学毕业生自荐信
2013/11/13 职场文书
家长评语大全
2014/01/22 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android