iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript中怎么实现页面滚动图片加载功能
  • 325
分享到

JavaScript中怎么实现页面滚动图片加载功能

2024-04-02 19:04:59 325人浏览 薄情痞子
摘要

javascript中怎么实现页面滚动图片加载功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。原理:1.给页面绑定滚动事件;

javascript中怎么实现页面滚动图片加载功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

原理:

1.给页面绑定滚动事件;

2.加载页面的时候把真正的图片地址放在某属性中;

3.然后再滚动过程中判断元素是否进入当前浏览器窗口内;

4.***加载图片,当然加载什么,用什哪种用户体验都得由你决定;

难点:

浏览器兼容是造成难点的原因所在,DOM标准和IE标准,每天前端的工作都在和它们打交道。思考下面的几段代码

1.window.pageYOffset ? window.pageYOffset : window.document.documentElement.scrollTop

目的:获得当前页面相对于窗口显示区左上角的 Y 位置.

DOM标准:window.pageYOffset;

IE标准:window.document.documentElement.scrollTop

2.window.innerHeight ? window.innerHeight : document.documentElement.clientHeight

目的:声明了窗口的文档显示区的高度和宽度,以像素计.

DOM标准:innerheight 和 innerwidth;

IE标准:document.documentElement 或 ducument.body (与 DTD 相关)的 clientWidth 和 clientHeight 属性作为替代

3.obj.getBoundinGClientRect().top + window.document.documentElement.scrollTop + window.document.body.scrollTop

目的:获取页面元素的位置.

当浏览器为 非WEBkit内核 时,document.body.scrollTop值恒定为0,使用 document.documentElement.scrollTop才能取到正确值 ;

当浏览器为 webkit内核 时,document.documentElement.scrollTop值恒定为0,使用 document.body;

我还搜索到一种说法是和DTD相关(即 当页面指定了 DOCTYPE时,使用 document.documentElement ; 当页面没有指定了 DOCTYPE时,使用 document.body),请确定知道的朋友帮忙指出下,不胜感谢。

细节:

1.因为真正的地址最初是在某属性中(默认是xsrc,可自己设置),所以默认的图片地址***是一个像素的透明图片,这样可以避免在浏览器中出现红X;

JavaScript中怎么实现页面滚动图片加载功能

2.在图片load的时候可以加入等待的图片,这样用户才会知道这里有图片需要加载,良好的用户体验是前端一直所追求的(例子中有体现);

3.在图片load成功后可以加入合适的显示效果(例子中木有体现,可以自己尝试);

JavaScript源码如下:

var scrollLoad = (function (options) {          var defaults = (arguments.length == 0) ? { src: 'xSrc', time: 300} : { src: options.src || 'xSrc', time: options.time ||300};          var camelize = function (s) {              return s.replace(/-(\w)/g, function (strMatch, p1) {                  return p1.toUpperCase();              });          };          this.getStyle = function (element, property) {              if (arguments.length != 2) return false;              var value = element.style[camelize(property)];              if (!value) {                  if (document.defaultView && document.defaultView.getComputedStyle) {                      var CSS = document.defaultView.getComputedStyle(element, null);                      value = css ? css.getPropertyValue(property) : null;                  } else if (element.currentStyle) {                      value = element.currentStyle[camelize(property)];                  }              }              return value == 'auto' ? '' : value;          };          var _init = function () {              var offsetPage = window.pageYOffset ? window.pageYOffset : window.document.documentElement.scrollTop,                  offsetWindow = offsetPage + Number(window.innerHeight ? window.innerHeight : document.documentElement.clientHeight),                  docImg = document.images,                  _len = docImg.length;              if (!_len) return false;              for (var i = 0; i < _len; i++) {                  var attrSrc = docImg[i].getAttribute(defaults.src),                      o = docImg[i], tag = o.nodeName.toLowerCase();                  if (o) {                      postPage = o.getBoundingClientRect().top + window.document.documentElement.scrollTop + window.document.body.scrollTop; postWindow = postPage + Number(this.getStyle(o, 'height').replace('px', ''));                      if ((postPage > offsetPage && postPage < offsetWindow) || (postWindow > offsetPage && postWindow < offsetWindow)) {                          if (tag === "img" && attrSrc !== null) {                              o.setAttribute("src", attrSrc);                          }                          o = null;                      }                  }              };              window.onscroll = function () {                  setTimeout(function () {                      _init();                  }, defaults.time);              }          };          return _init();      });      scrollLoad();

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网JavaScript频道,感谢您对编程网的支持。

--结束END--

本文标题: JavaScript中怎么实现页面滚动图片加载功能

本文链接: https://www.lsjlt.com/news/69847.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript中怎么实现页面滚动图片加载功能
    JavaScript中怎么实现页面滚动图片加载功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。原理:1.给页面绑定滚动事件;...
    99+
    2022-10-19
  • JavaScript怎么实现图片滚动
    这篇文章主要讲解了“JavaScript怎么实现图片滚动”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript怎么实现图片滚动”吧! ...
    99+
    2022-10-19
  • javascript如何实现图片预加载和懒加载功能
    这篇文章主要介绍“javascript如何实现图片预加载和懒加载功能”,在日常操作中,相信很多人在javascript如何实现图片预加载和懒加载功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascr...
    99+
    2023-06-14
  • JavaScript怎么实现鼠标滚轮控制页面图片切换
    这篇文章主要介绍“JavaScript怎么实现鼠标滚轮控制页面图片切换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript怎么实现鼠标滚轮控制页面图片...
    99+
    2022-10-19
  • JavaScript怎么实现图片懒加载
    本篇内容介绍了“JavaScript怎么实现图片懒加载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现思路实现图片懒加载我们需要先明白具体...
    99+
    2023-07-02
  • 小程序滚动加载更多功能怎么实现
    本篇内容主要讲解“小程序滚动加载更多功能怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小程序滚动加载更多功能怎么实现”吧!需要用到的组件和apiscroll-view(可滚动视图区域)w...
    99+
    2023-06-26
  • 怎么在HTML5中实现一个图片预加载功能
    这篇文章给大家介绍怎么在HTML5中实现一个图片预加载功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在HTML5中,我们可以使用drawImage方法在canvas上进行画图操作,其基本代码如下:var ...
    99+
    2023-06-09
  • webpack中css加载和图片加载功能怎么使用
    这篇文章主要介绍“webpack中css加载和图片加载功能怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“webpack中css加载和图片加载功能怎么使用”文章能帮助大家解决问题。css加载器...
    99+
    2023-07-05
  • JavaScript怎么实现页面无缝滚动效果
    这篇文章主要介绍“JavaScript怎么实现页面无缝滚动效果”,在日常操作中,相信很多人在JavaScript怎么实现页面无缝滚动效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实...
    99+
    2023-06-29
  • 微信小程序怎么实现滚动加载更多功能
    这篇文章主要为大家展示了微信小程序怎么实现滚动加载更多功能,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“微信小程序怎么实现滚动加载更多功能”这篇文章吧。 需要用到的组件和apiscrol...
    99+
    2023-06-26
  • JavaScript中怎么实现图片压缩功能
    JavaScript中怎么实现图片压缩功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。压缩思路涉及到 JS 的图片压缩,我的想法是需要用...
    99+
    2022-10-19
  • CSS3怎么实现页面加载动画
    这篇文章主要介绍“CSS3怎么实现页面加载动画”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS3怎么实现页面加载动画”文章能帮助大家解决问题。   ...
    99+
    2022-10-19
  • Vue图片监听鼠标滑轮滚动怎么实现图片缩小放大功能
    这篇文章主要讲解了“Vue图片监听鼠标滑轮滚动怎么实现图片缩小放大功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue图片监听鼠标滑轮滚动怎么实现图片缩小放大功能”吧!效果:实现思路在j...
    99+
    2023-07-05
  • VB.NET中怎么实现拖动图片功能
    VB.NET中怎么实现拖动图片功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、 在Form中添加两个PictureBox控件。2、 在代码窗体中添加如下代码Priva...
    99+
    2023-06-17
  • JavaScript图片打印功能怎么实现
    这篇文章主要讲解了“JavaScript图片打印功能怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript图片打印功能怎么实现”吧!其实浏览器 window 对象提供了 ...
    99+
    2023-07-05
  • JavaScript基于定时器实现图片无缝滚动功能的方法
    这篇文章主要介绍了JavaScript基于定时器实现图片无缝滚动功能的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:一、无缝滚...
    99+
    2022-10-19
  • 怎么用php实现添加图片功能
    使用PHP语言实现添加图片功能比较简单,下面将介绍一种基于Web的PHP添加图片功能的实现方法。步骤一:设置表单在一个HTML文件中,创建一个form表单,设置enctype为“multipart/form-data”。这个用于告诉服务器,...
    99+
    2023-05-14
    php
  • JavaScript之window页面加载事件怎么实现
    这篇文章主要介绍了JavaScript之window页面加载事件怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript之window页面加载事件怎么实现文章...
    99+
    2022-10-19
  • 使用ajax怎么实现一个页面局部加载功能
    今天就跟大家聊聊有关使用ajax怎么实现一个页面局部加载功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是ajaxajax是一种在无需重新加载整个网页的情况下,能够更新部分网页...
    99+
    2023-06-08
  • 怎么用vue实现页面加载时的进度条功能
    这篇“怎么用vue实现页面加载时的进度条功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用vue实现页面加载时的进度条...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作