1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php 图片预览原理 JavaScript_纯JS实现的批量图片预览加载功能 1.实现原理直接见代

php 图片预览原理 JavaScript_纯JS实现的批量图片预览加载功能 1.实现原理直接见代

时间:2023-08-08 20:31:56

相关推荐

php 图片预览原理 JavaScript_纯JS实现的批量图片预览加载功能 1.实现原理直接见代

纯JS实现的批量图片预览加载功能

1.实现原理直接见代码,需要一张转圈的小图片,需要预览的所有图片默认的位置全是这张小图片,滚轮滚到原图需要出现的位置时候,预览加载替换小图片.实现效果

复制代码 代码如下:

复制代码 代码如下:

var util = {

$: function (id) {

return document.getElementById(id);

},

getElementsByClassName: function (oElm, strTagName, strClassName) {

var arrElements = oElm.getElementsByTagName(strTagName);

var arrReturnElements = new Array();

strClassName = strClassName.replace(/-/g, "\-");

var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");

var oElement;

for (var i = 0; i < arrElements.length; i++) {

oElement = arrElements[i];

if (oRegExp.test(oElement.className)) {

arrReturnElements.push(oElement);

}

}

return arrReturnElements;

},

getXY: function (obj) {

var sumTop = 0, sumLeft = 0;

while (obj != document.body) {

sumLeft += obj.offsetLeft;

sumTop += obj.offsetTop;

obj = obj.offsetParent;

}

return { x: sumLeft, y: sumTop }

}

};

var GalleryViewer = {

GalleryContainer: {},

smallImgs: [], //小图片数组

orginalImgs: [], //原始图片数组

init: function (id, imgs, classname, smallImgSrc) {

this.GalleryContainer = util.$(id);

inalImgs = imgs;

for (var i = 0; i < imgs.length; i++) { //追加所有预览小图片

var img = document.createElement("img");

img.src = smallImgSrc;

img.className = classname;

this.GalleryContainer.appendChild(img);

}

this.smallImgs = util.getElementsByClassName(util.$(id), "img", classname);

if (util.getXY(GalleryViewer.GalleryContainer).y < window.screen.height) {//如果初始在页面开始部位直接预览加载

this.preloadImages();

}

var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x

if (document.attachEvent) //if IE (and Opera depending on user setting)

document.attachEvent("on" + mousewheelevt, inalImgsAppear);

else if (document.addEventListener) //WC3 browsers

document.addEventListener(mousewheelevt, inalImgsAppear, false);

},

preloadImages: function () {

for (var i = 0; i < inalImgs.length; i++) {

(function (i) {

var imagePreload = new Image();

imagePreload.src = inalImgs[i]; //预加载大图片

if (plete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数

GalleryViewer.ImgsChange(i, imagePreload);

return; // 直接返回,不用再处理onload事件

}

imagePreload.onload = GalleryViewer.ImgsChange(i, imagePreload); //加载完成替换

})(i);

}

},

ImgsChange: function (i, obj) {

this.smallImgs[i].src = obj.src;

},

orginalImgsAppear: function () {

//alert(getXY(this.GalleryContainer).y - window.screen.height);

if (document.documentElement.scrollTop > util.getXY(GalleryViewer.GalleryContainer).y - window.screen.height) {

GalleryViewer.preloadImages();

}

}

};

(function () {

var imgs1 = ['../Content/images/gb_tip_layer.png', '../Content/images/gb_tip_layer.png', '../Content/images/gb_tip_layer.png'];

GalleryViewer.init("Div1", imgs1, "smallImgs1", "../Content/images/preload.gif");

//参数函数分别为div.id容器,原图地址数组,小图的类名,小图地址,具体图片地址请参照自己的项目

})();相关阅读:

保存CSS中的图片的几种方法

Linux 服务器的安全隐患以及防范对策

不升级到Windows 7的7个理由

php GeoIP的使用教程

提高MySQL查询效率的三个有效的尝试

输入汉字自动转为拼音(jsp实现方式)

Ubuntu技巧建立使用“Windows键”的快捷方式

SQL Server 2000游标使用方法

晋城吧对DiscuzX进行的前端优化要点

span margin 设置生效

ubuntu 编译安装php 5.3.3+memcache的方法

Good OS新版操作系统gOS 3.0桌面图片欣赏

让Vista具有MAC OS的部分功能

Javascript学习笔记 delete运算符

php 图片预览原理 JavaScript_纯JS实现的批量图片预览加载功能 1.实现原理直接见代码 需要一 - phpStudy...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。