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 powerFloat万能浮动层下拉层插件使用介绍
Dec 27 Javascript
jQuery之自动完成组件的深入解析
Jun 19 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
Jul 09 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
清除浏览器缓存的几种方法总结(必看)
Dec 09 Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 Javascript
vue+axios+element ui 实现全局loading加载示例
Sep 11 Javascript
vue+php实现的微博留言功能示例
Mar 16 Javascript
elementUI table表格动态合并的示例代码
May 15 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
Oct 13 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代码
2010/02/16 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
python 安装移动复制第三方库操作
2020/07/13 Python
Python eval函数介绍及用法
2020/11/09 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
关于期中考试的反思
2014/02/02 职场文书
文明家庭事迹材料
2014/12/20 职场文书
月考总结与反思
2015/10/22 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
python开发制作好看的时钟效果
2022/05/02 Python