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最新动画教程+iso光盘下载
Jan 22 Javascript
jquery 上下滚动广告
Jun 17 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
Three.js如何实现雾化效果示例代码
Sep 27 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
Sep 27 Javascript
vue子传父关于.sync与$emit的实现
Nov 05 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 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
ip签名探针
2006/10/09 PHP
一贴学会PHP 新手入门教程
2009/08/03 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
PHP常用的三种设计模式
2017/02/17 PHP
jquery随机展示头像代码
2011/12/21 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
vue生命周期的探索
2019/04/03 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python3序列化与反序列化用法实例
2015/05/26 Python
怎样使用Python脚本日志功能
2016/08/14 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
普通话宣传标语
2014/06/26 职场文书
教师暑期培训感言
2014/08/15 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
演讲稿之开卷有益
2019/08/07 职场文书