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 相关文章推荐
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
Mar 08 Javascript
js中的preventDefault与stopPropagation详解
Jan 29 Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
Jan 27 Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
May 10 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
使用layui定义一个模块并使用的例子
Sep 14 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
May 20 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 08 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地址的函数
2010/03/15 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
Bootstrap插件全集
2016/07/18 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
微信小程序 rich-text的使用方法
2017/08/04 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
Vue 打包体积优化方案小结
2020/05/20 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
拉丁舞学习者的自我评价
2013/10/27 职场文书
探亲邀请信范文
2014/01/30 职场文书
接待员岗位责任制
2014/02/10 职场文书
党的群众路线学习材料
2014/05/16 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
入党现实表现材料
2014/12/23 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记