js实现瀑布流的一种简单方法实例分享_javascript技巧
下面奉上一则用JS实现瀑布流的方法,望批评。
<script><BR>var waterFall = {<BR> container: document.getElementById("container"),<BR> columnNumber: 1,<BR> columnWidth: 210,<BR> // P_001.jpg ~ P_160.jpg<BR> rootImage: "test/",<BR> indexImage: 0,<br><br> scrollTop: document.documentElement.scrollTop || document.body.scrollTop,<BR> detectLeft: 0,<br><br> loadFinish: false,<br><br> // 返回固定格式的图片名<BR> getIndex: function() {<BR> var index = this.indexImage;<BR> if (index < 10) {<BR> index = "00" + index; <BR> } else if (index < 100) {<BR> index = "0" + index; <BR> }<BR> return index;<BR> },<br><br> // 是否滚动载入的检测<BR> appendDetect: function() {<BR> var start = 0;<BR> for (start; start < this.columnNumber; start++) {<BR> var eleColumn = document.getElementById("waterFallColumn_" + start);<BR> if (eleColumn && !this.loadFinish) {<BR> if (eleColumn.offsetTop + eleColumn.clientHeight < this.scrollTop + (window.innerHeight || document.documentElement.clientHeight)) {<BR> this.append(eleColumn);<BR> }<BR> } <BR> }<br><br> return this;<BR> },<br><br> // 滚动载入<BR> append: function(column) {<BR> this.indexImage += 1;<BR> var html = '', index = this.getIndex(), imgUrl = this.rootImage + "P_" + index + ".jpg";<br><br> // 图片尺寸<BR> var aEle = document.createElement("a");<BR> aEle.href = "###";<BR> aEle.className = "pic_a";<BR> aEle.innerHTML = '<img src="'+ imgUrl +'" / alt="js实现瀑布流的一种简单方法实例分享_javascript技巧" ><strong>'+ index +'';<BR> column.appendChild(aEle);<br><br> if (index >= 160) {<BR> //alert("图片加载光光了!");<BR> this.loadFinish = true;<BR> }<br><br> return this;<BR> },<br><br> // 页面加载初始创建<BR> create: function() {<BR> this.columnNumber = Math.floor(document.body.clientWidth / this.columnWidth);<br><br> var start = 0, htmlColumn = '', self = this;<BR> for (start; start < this.columnNumber; start+=1) {<BR> htmlColumn = htmlColumn + '<span id="waterFallColumn_'+ start +'" class="column" style="max-width:90%"+ this.columnWidth +'px;">'+ <BR> function() {<BR> var html = '', i = 0;<BR> for (i=0; i<5; i+=1) {<BR> self.indexImage = start + self.columnNumber * i;<BR> var index = self.getIndex();<BR> html = html + '<a href="###" class="pic_a"><img src="'+ self.rootImage + "P_" + index +'.jpg" / alt="js实现瀑布流的一种简单方法实例分享_javascript技巧" ><strong>'+ index +'';<BR> }<BR> return html; <BR> }() +<BR> ' '; <BR> }<BR> htmlColumn += '<span id="waterFallDetect" class="column" style="max-width:90%"+ this.columnWidth +'px;">';<br><br> this.container.innerHTML = htmlColumn;<br><br> this.detectLeft = document.getElementById("waterFallDetect").offsetLeft;<BR> return this;<BR> },<br><br> refresh: function() {<BR> var arrHtml = [], arrTemp = [], htmlAll = '', start = 0, maxLength = 0;<BR> for (start; start < this.columnNumber; start+=1) {<BR> var arrColumn = document.getElementById("waterFallColumn_" + start).innerHTML.match(/<a(?:.|\n|\r|\s)*?a>/gi);<BR> if (arrColumn) {<BR> maxLength = Math.max(maxLength, arrColumn.length);<BR> // arrTemp是一个二维数组<BR> arrTemp.push(arrColumn);<BR> }<BR> }<br><br> // 需要重新排序<BR> var lengthStart, arrStart;<BR> for (lengthStart = 0; lengthStart<maxLength; lengthStart++) {<BR> for (arrStart = 0; arrStart<this.columnNumber; arrStart++) {<BR> if (arrTemp[arrStart][lengthStart]) {<BR> arrHtml.push(arrTemp[arrStart][lengthStart]); <BR> }<BR> } <BR> }<br><br> <BR> if (arrHtml && arrHtml.length !== 0) {<BR> // 新栏个数 <BR> this.columnNumber = Math.floor(document.body.clientWidth / this.columnWidth);<br><br> // 计算每列的行数<BR> // 向下取整<BR> var line = Math.floor(arrHtml.length / this.columnNumber);<br><br> // 重新组装HTML<BR> var newStart = 0, htmlColumn = '', self = this;<BR> for (newStart; newStart < this.columnNumber; newStart+=1) {<BR> htmlColumn = htmlColumn + '<span id="waterFallColumn_'+ newStart +'" class="column" style="width:'+ this.columnWidth +'px;">'+ <BR> function() {<BR> var html = '', i = 0;<BR> for (i=0; i<line; i+=1) {<BR> html += arrHtml[newStart + self.columnNumber * i];<BR> }<BR> // 是否补足余数<BR> html = html + (arrHtml[newStart + self.columnNumber * line] || '');<br><br> return html; <BR> }() +<BR> ' '; <BR> }<BR> htmlColumn += '<span id="waterFallDetect" class="column" style="width:'+ this.columnWidth +'px;">';<br><br> this.container.innerHTML = htmlColumn;<br><br> this.detectLeft = document.getElementById("waterFallDetect").offsetLeft;<br><br> // 检测<BR> this.appendDetect();<BR> }<BR> return this;<BR> },<br><br> // 滚动加载<BR> scroll: function() {<BR> var self = this;<BR> window.onscroll = function() {<BR> // 为提高性能,滚动前后距离大于100像素再处理<BR> var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;<BR> if (!this.loadFinish && Math.abs(scrollTop - self.scrollTop) > 100) {<BR> self.scrollTop = scrollTop;<BR> self.appendDetect(); <BR> }<br><br> };<BR> return this;<BR> },<br><br> // 浏览器窗口大小变换<BR> resize: function() {<BR> var self = this;<BR> window.onresize = function() {<BR> var eleDetect = document.getElementById("waterFallDetect"), detectLeft = eleDetect && eleDetect.offsetLeft;<BR> if (detectLeft && Math.abs(detectLeft - self.detectLeft) > 50) {<BR> // 检测标签偏移异常,认为布局要改变<BR> self.refresh(); <BR> }<BR> };<BR> return this;<BR> },<BR> init: function() {<BR> if (this.container) {<BR> this.create().scroll().resize(); <BR> }<BR> }<BR>};<BR>waterFall.init();<BR></script>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤,需要具体代码示例随着互联网和科技的快速发展,股票交易已经成为许多投资者的重要途径之一。而股票分析是投资者决策的重要一环,其中蜡烛图被广泛应用于技术分析中。学习如何使用PHP和JS绘制蜡烛图将为投资者提供更多直观的信息,帮助他们更好地做出决策。蜡烛图是一种以蜡烛形状来展示股票价格的技术图表。它展示了股票价格的

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

如何使用PHP和JS创建股票蜡烛图股票蜡烛图是股票市场中常见的一种技术分析图形,通过绘制股票的开盘价、收盘价、最高价和最低价等数据,帮助投资者更直观地了解股票的价格波动情况。本文将教你如何使用PHP和JS创建股票蜡烛图,并附上具体的代码示例。一、准备工作在开始之前,我们需要准备以下环境:1.一台运行PHP的服务器2.一个支持HTML5和Canvas的浏览器3

随着互联网金融的迅速发展,股票投资已经成为了越来越多人的选择。而在股票交易中,蜡烛图是一种常用的技术分析方法,它能够显示股票价格的变化趋势,帮助投资者做出更加精准的决策。本文将通过介绍PHP和JS的开发技巧,带领读者了解如何绘制股票蜡烛图,并提供具体的代码示例。一、了解股票蜡烛图在介绍如何绘制股票蜡烛图之前,我们首先需要了解一下什么是蜡烛图。蜡烛图是由日本人

如何使用JS和百度地图实现地图多边形绘制功能在现代网页开发中,地图应用已经成为常见的功能之一。而地图上绘制多边形,可以帮助我们将特定区域进行标记,方便用户进行查看和分析。本文将介绍如何使用JS和百度地图API实现地图多边形绘制功能,并提供具体的代码示例。首先,我们需要引入百度地图API。可以利用以下代码在HTML文件中导入百度地图API的JavaScript

如何使用JS和百度地图实现地图点击事件处理功能概述:在Web开发中,经常需要使用地图功能来展示地理位置和地理信息。而地图上的点击事件处理是地图功能中常用且重要的一部分。本文将介绍如何使用JS和百度地图API来实现地图的点击事件处理功能,并给出具体的代码示例。步骤:导入百度地图的API文件首先,要在HTML文件中导入百度地图API的文件,可以通过以下代码实现:

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP
