js 图片缩放特效代码

图片特效

.lightbox{width:300px;background:#FFFFFF;border:1px solid #ccc;line-height:25px; top:5%; left:5%;}
.lightbox dt{background:#f4f4f4;}

var isIE = (document.all) ? true : false;
var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6);
var $ = function (id)
{
return "string" == typeof id ? document.getElementById(id) : id;
};
var Class =
{
create: function()
{
return function() { this.initialize.apply(this, arguments); }
}
};
var Extend = function(destination, source)
{
for (var property in source)
{
destination[property] = source[property];
}
};
var Bind = function(object, fun)
{
return function()
{
return fun.apply(object, arguments);
}
};
var Each = function(list, fun)
{
for (var i = 0, len = list.length; i '
}
},
//设置默认属性
SetOptions: function(options)
{
this.options =
{//默认值
Lay: null,//覆盖层对象
Color: "#000",//背景色
Opacity: 50,//透明度(0-100)
zIndex: 1000//层叠顺序
};
Extend(this.options, options || {});
},
//显示
Show: function()
{
//兼容ie6
if(isIE6){ this._resize(); window.attachEvent("onresize", this._resize); }
//设置样式
with(this.Lay.style)
{
//设置透明度
isIE ? filter = "alpha(opacity:" + this.Opacity + ")" : opacity = this.Opacity / 100;
backgroundColor = this.Color; display = "block";
}
},
//关闭
Close: function()
{
this.Lay.style.display = "none";
if(isIE6){ window.detachEvent("onresize", this._resize); }
}
};

var LightBox = Class.create();
LightBox.prototype =
{
initialize: function(box, options)
{
this.Box = $(box);//显示层
this.OverLay = new OverLay(options);//覆盖层
this.SetOptions(options);

this.Fixed = !!this.options.Fixed;
this.Over = !!this.options.Over;
this.Center = !!this.options.Center;
this.onShow = this.options.onShow;

this.Box.style.zIndex = this.OverLay.zIndex + 1;
this.Box.style.display = "none";
//兼容ie6用的属性
if(isIE6)
{
this._top = this._left = 0; this._select = [];
this._fixed = Bind(this, function(){ this.Center ? this.SetCenter() : this.SetFixed(); });
}
},
//设置默认属性
SetOptions: function(options)
{
this.options =
{//默认值
Over: true,//是否显示覆盖层
Fixed: false,//是否固定定位
Center: false,//是否居中
onShow: function(){}//显示时执行
};
Extend(this.options, options || {});
},
//兼容ie6的固定定位程序
SetFixed: function()
{
this.Box.style.top = document.documentElement.scrollTop - this._top + this.Box.offsetTop + "px";
this.Box.style.left = document.documentElement.scrollLeft - this._left + this.Box.offsetLeft + "px";

this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft;
},
//兼容ie6的居中定位程序
SetCenter: function()
{
this.Box.style.marginTop = document.documentElement.scrollTop - this.Box.offsetHeight / 2 + "px";
this.Box.style.marginLeft = document.documentElement.scrollLeft - this.Box.offsetWidth / 2 + "px";
},
//显示
Show: function(options)
{
//固定定位
this.Box.style.position = this.Fixed && !isIE6 ? "fixed" : "absolute";
//覆盖层
this.Over && this.OverLay.Show();
this.Box.style.display = "block";
//居中
if(this.Center)
{
this.Box.style.top = this.Box.style.left = "50%";
//设置margin
if(this.Fixed)
{
this.Box.style.marginTop = - this.Box.offsetHeight / 2 + "px";
this.Box.style.marginLeft = - this.Box.offsetWidth / 2 + "px";
}else{
this.SetCenter();
}
}
//兼容ie6
if(isIE6)
{
if(!this.Over)
{
//没有覆盖层ie6需要把不在Box上的select隐藏
this._select.length = 0;
Each(document.getElementsByTagName("select"), Bind(this, function(o){
if(!Contains(this.Box, o)){ o.style.visibility = "hidden"; this._select.push(o); }
}))
}
//设置显示位置
this.Center ? this.SetCenter() : this.Fixed && this.SetFixed();
//设置定位
this.Fixed && window.attachEvent("onscroll", this._fixed);
}
this.onShow();
},
//关闭
Close: function()
{
this.Box.style.display = "none";
this.OverLay.Close();
if(isIE6)
{
window.detachEvent("onscroll", this._fixed);
Each(this._select, function(o){ o.style.visibility = "visible"; });
}
}
};
function ZoomImg(o)
{
var zoom = parseInt(o.style.zoom, 10) || 100;
zoom += event.wheelDelta / 12;
if(zoom >60&&zoom

鼠标滚轮放大图片


var box = new LightBox("idBox");
$("idBoxCancel").onclick = function(){ box.Close(); }
$("imgclose").onclick = function(){ box.Close(); }
$("iimg").onclick = function(){ box.Show(); }

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • js实现固定显示区域内自动缩放图片的方法

    本文实例讲述了js实现固定显示区域内自动缩放图片的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

  • 利用javascript解决图片缩放及其优化的代码

    一个客户跟我联系说,刚给他做的网站,显示不正常,我顿时一紧张,这是我独立完成的第一个项目,于是赶紧打开他的网站看了看,没看出什么不正常来.我又问他怎么不正常,他说和交接项目时的效果不一样,晕,交接时要是不正常,项目肯定交接不了啊,干脆让他截个图过来.果然不正常,是他刚上传的一张图片把显示内容的窗口撑开了.查看代码,明明写好了max-width,怎么还会出现这种情况.突然发现他发来的图上,那个浏览器看着不顺眼,像是古老的而神圣的IE6!经过确认,果然是它,又是它!我真是疏忽,没给他在IE6下测试就

  • js实现鼠标滚轮控制图片缩放效果的方法

    本文实例讲述了js实现鼠标滚轮控制图片缩放效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

  • 使用ImageMagick进行图片缩放、合成与裁剪(js+python)

    最近的项目里面需要对书籍的封面进行处理,就是加一条阴影线形成书脊的凹凸感,然后将书脊切出,分成两部分,以便客户端实现打开动画.由于需要在服务器端处理,使用就研究使用imagemagick来进行.同时准备封装了一个Node.js和Python的方法,主要还是讲一下然后使用imagemagick来对图片进行缩放.合成后进行裁剪吧. 首先素材文件如下(左边未处理封面,右边为需要合成上去的阴影): 安装ImageMagick的过程就不讲了,可以参考官网的安装方法:http://www.imagemagi

  • js实现兼容IE、Firefox的图片缩放代码

    本文实例讲述了js实现兼容IE.Firefox的图片缩放代码.分享给大家供大家参考,具体如下: function SetSize(obj, width, height) { myImage = new Image(); myImage.src = obj.src; if (myImage.width > 0 && myImage.height > 0) { var rate = 1; if (myImage.width > width || myImage.height

  • JS 图片缩放效果代码

    复制代码 代码如下: <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <TITLE>onMouseWheel</TITLE> <SCRIPT> var count = 10; function Picture() { count = Counting(count); Resize

  • js 图片缩放(按比例)控制代码

    缩放代码: 复制代码 代码如下: 缩放代码: <script type="text/javascript"> //图片按比例缩放 var flag = false; function DrawImage(ImgD, iwidth, iheight) { //参数(图片,允许的宽度,允许的高度) var image = new Image(); image.src = ImgD.src; if (image.width > 0 && image.heig

  • JS实现按比例缩放图片的方法(附C#版代码)

    本文实例讲述了JS实现按比例缩放图片的方法.分享给大家供大家参考,具体如下: js版本: function resizeImage(obj, MaxW, MaxH) { var imageObject = obj; var state = imageObject.readyState; if(state!='complete') { setTimeout("resizeImage("+imageObject+","+MaxW+","+MaxH+&

  • js实现头像图片切割缩放及无刷新上传图片的方法

    本文实例讲述了js实现头像图片切割缩放及无刷新上传图片的方法.分享给大家供大家参考.具体如下: fname:后台接收时用的名字, 必填 funstr:开始上传执行的函数, 默认无 funbak:上传成功后的回调函数, 必填 furl:上传地址: 默认当前form的提交页面 注意:上传地址和当前地址必须为同意域名否则回调函数获取不到 上传成功发回的地址.   a.php: $path='a.jpg'; move_uploaded_file($_FILES['uimg']['tmp_name'],$

  • js 图片缩放特效代码

    图片特效 .lightbox{width:300px;background:#FFFFFF;border:1px solid #ccc;line-height:25px; top:5%; left:5%;} .lightbox dt{background:#f4f4f4;} var isIE = (document.all) ? true : false; var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0]

  • js变形金刚文字特效代码分享

    为大家分享的js变形金刚文字特效代码如下 -----------------------------------------------效果演示----------------------------------------------- <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>js变形金刚文字特效&l

  • ES6实现图片切换特效代码

    效果图 demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> let arr = ["前端&quo

  • 动感超强的JS图片轮换特效

    动感超强的JS图片特效_我们 * { margin:0; padding:0; } body { margin:5px auto; text-align:center; background:#f0f0f0; } img { margin:0; border:0; padding:0; } #eLore { position:relative; margin:0 auto; width:800px; height:339px; } #eLore_wrap { position:relative;

  • js图片处理示例代码

    复制代码 代码如下: var ImgObj=new Image(); //建立一个图像对象 var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"//全部图片格式类型 var FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,HasCheked,IsImg//全局变量 图片相关属性 //以下为限制变量 var AllowExt=".jpg|.gif|.doc|.txt|&q

  • 特漂亮的JS图片排列旋转效果代码

    了下代码,感觉用数组模拟有些僵硬,自己重新写了一个,请大家来pp! body{background:black} .point{position:absolute;height:75px;border:1px silver solid} #round{position:absolute;background:red;width:200px;height:200px;} var r=200,dv=0.01,w=100,x=400;y=100,pn=8 var pi=3.1415926575,d=p

  • js图片闪动特效可以控制间隔时间如几分钟闪动一下

    图片一出来,过5秒钟,开始闪动,然后停止. var inter={}; var i=0; $(document).ready(function(){ $("a").each(function(index,item){ $(this).bind().click(function(){ i=index; if(inter!=null || inter.length>0){ window.clearInterval(inter); } window.setTimeout(functio

  • js实现碰撞检测特效代码分享

    自己做了碰撞检测的封装,先看下实例demo,在看封装 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>碰撞检测</title> <style type="text/css"> *{ margin: 0; padding: 0; } #divA,#divB{ width: 200px; height: 200px;

随机推荐