123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /*
- show //正常状态的框
- bigshow // 放大的框的盒子
- smallshow //缩小版的框
- mask //放大的区域(黑色遮罩)
- bigitem //放大的框
- */
- // var obj = new mag('.show', '.bigshow','.smallshow','.mask','.bigitem');
- // obj.init()
- function mag(show, bigshow,smallshow,mask,bigitem) {
- this.show = show;
- this.bigshow = bigshow;
- this.smallshow = smallshow;
- this.mask = mask;
- this.bigitem = bigitem;
- this.obj = {
- prev: '.prev',
- next: '.next',
- middle: '.middle',
- middleBox: '.middle_box'
- }
- }
- mag.prototype = {
- init: function () {
- var that = this;
- that.start();
- this.showHover();
- this.smallImgHover();
- this.showMove();
- this.prevClick();
- this.nextClick();
- },
- start: function () {
- var that = this;
- var buil=$(that.show).width()/$(that.mask).width()*$(that.bigshow).width();
- $(that.bigitem).css("width",buil);
- $(that.smallshow + ' img').eq(0).css("border","2px solid #f40");
- var midhei=$(that.obj.middle + ' li').innerWidth()*$(that.obj.middle + ' li').length;
- $(that.obj.middle).width(midhei);
- },
- showHover: function () {
- var that = this;
- $(that.show).hover(function(){
- $(that.bigshow).show();
- $(that.mask).show();
- },function(){
- $(that.bigshow).hide();
- $(that.mask).hide();
- });
- },
- smallImgHover: function () {
- var that = this;
- $(that.smallshow + ' img').click(function(){
- var src=$(this).attr("src");
- $(that.smallshow + ' img').css("border","1px solid #e8e8e8");
- $(this).css("border","2px solid #f40");
- $(that.show + '>img').attr("src",src);
- $(that.bigitem+ '>img').attr("src",src);
- });
- },
- showMove:function(){
- var that = this;
- $(that.show).mousemove(function(e){
- var bigx=$(this).offset().left;
- var bigy=$(this).offset().top;
- var x= e.clientX;
- var y= e.clientY;
- var scrollx=$(window).scrollLeft();
- var scrolly=$(window).scrollTop();
- var ox=x+scrollx-bigx-$(that.mask).width()/2;
- var oy=y+scrolly-bigy-$(that.mask).height()/2;
- if(ox<=0){
- ox=0
- }
- if(ox>$(that.show).width()-$(that.mask).width()){
- ox=$(that.show).width()-$(that.mask).width();
- }
- if(oy<=0){
- oy=0
- }
- if(oy>$(that.show).height()-$(that.mask).height()){
- oy=$(that.show).height()-$(that.mask).height();
- }
- $(that.mask).css({left:ox});
- $(that.mask).css({top:oy});
- var bei=$(that.show).width()/$(that.mask).width();
- $(that.bigitem+ '>img').css(
- { marginLeft:-bei*ox,
- marginTop:-bei*oy
- })
- });
- },
- prevClick: function () {
- var that = this;
- $(that.obj.prev).click(function(){
- if($(that.obj.middle).width()-$(that.obj.middleBox).width()>0){
- if(Math.abs(parseInt($(that.obj.middle).css("marginLeft")))>$(that.obj.middleBox).width()){
- $(that.obj.middle).css("marginLeft",parseInt($(that.obj.middle).css("marginLeft"))+$(that.obj.middleBox).width())
- }
- if(Math.abs(parseInt($(that.obj.middle).css("marginLeft")))<$(that.obj.middleBox).width()){
- $(that.obj.middle).css("marginLeft","0px");
- $(that.obj.next).removeClass("nextnone");
- $(that.obj.prev).addClass("prevnone");
- }
- }else{
- return;
- }
- });
- },
- nextClick: function () {
- var that = this;
- $(that.obj.next).click(function(){
- if($(that.obj.middle).width()-$(that.obj.middleBox).width()>0){
- var shuzi=$(that.obj.middle).width()-Math.abs(parseInt($(that.obj.middle).css("marginLeft")))-$(that.obj.middleBox).width();
- if(shuzi>$(that.obj.middleBox).width()){
- $(that.obj.middle).css("marginLeft",-$(that.obj.middleBox).width()+parseInt($(that.obj.middle).css("marginLeft")))
- }
- if(shuzi<$(that.obj.middleBox).width()){
- $(that.obj.middle).css("marginLeft",-($(that.obj.middle).width()-$(that.obj.middleBox).width()))
- $(that.obj.next).addClass("nextnone");
- $(that.obj.prev).removeClass("prevnone");
- }
- }else{
- return;
- }
- });
- }
- }
|