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 相关文章推荐
jquery控制listbox中项的移动并排序
Nov 12 Javascript
JavaScript中的property和attribute介绍
Dec 26 Javascript
基于javascript实现的搜索时自动提示功能
Dec 26 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
使用jquery.form.js实现图片上传的方法
May 05 Javascript
使用JS获取SessionStorage的值
Jan 12 Javascript
详解Require.js与Sea.js的区别
Aug 05 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
Aug 09 Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
使用Layui搭建后台管理界面的操作方法
Sep 20 Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 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中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
详解javascript高级定时器
2015/12/31 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
Python中apply函数的用法实例教程
2014/07/31 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
Python实现名片管理系统
2020/02/14 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
Servlet如何得到服务器的信息
2015/12/22 面试题
销售行业个人求职自荐信
2013/09/25 职场文书
留学推荐信范文
2014/05/10 职场文书
圣诞晚会主持词
2015/07/01 职场文书