zoukankan      html  css  js  c++  java
  • 实现淘宝局部方法效果

    index.html

    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title></title>
    <link href="css/css.css" type="text/css" rel="stylesheet">    
    <SCRIPT src="js/jquery1.42.min.js" type=text/javascript></SCRIPT>
    <SCRIPT src="js/index.js" type=text/javascript></SCRIPT>
    </head>

    <body style="text-align:center">

    <div id="product">
        <div class="proobj" id="spec-n1"><img src="images/img04.jpg" height=350  width=350>
        </div>
        <div id="spec-n5">
            <div class="control" id="spec-left">
                <img src="images/left.gif" />
            </div>
            <div id="product_list">
                <ul class="list-h">
                    <li><img src="images/img01.jpg"> </li>
                    <li><img src="images/img02.jpg"> </li>
                    <li><img src="images/img03.jpg"> </li>
                    <li><img src="images/img04.jpg"> </li>
                    <li><img src="images/img01.jpg"> </li>
                    <li><img src="images/img02.jpg"> </li>
                    
                </ul>
            </div>
            <div class="control" id="spec-right">
                <img src="images/right.gif" />
            </div>
            
        </div>
    </div>
    <SCRIPT type=text/javascript>
        $(function(){
            /*要放大的图像父元素*/    
           $(".proobj").jqueryzoom({
                xzoom:400,
                yzoom:400,
                offset:10,
                position:"left",
            });
            /*滚动的小图列表父元素*/
            $("#product_list").jdMarquee({
                deriction:"left",
                350,
                height:56,
                step:2,
                speed:4,
                delay:10,
                control:true,
                _front:"#spec-right",
                _back:"#spec-left"
            });
            /*点击的小图片*/
            $("#product_list img").bind("mouseover",function(){
                var src=$(this).attr("src");
                /*被切换的大图片*/
                $("#spec-n1 img").eq(0).attr({
                    src:src.replace("/n5/","/n1/"),
                    jqimg:src.replace("/n5/","/n0/")
                });
                $(this).css({
                    "border":"2px solid #ff6600",
                    "padding":"1px"
                });
            }).bind("mouseout",function(){
                $(this).css({
                    "border":"1px solid #ccc",
                    "padding":"2px"
                });
            });                
        })
        </SCRIPT>



    </body>
    </html>

    css.css

    #product{ float:none; margin:20px auto; text-align:center; 500px;}
    .proobj{ 350px; height:350px; position:relative;}

    .zoomdiv{ left:859px; height:400px; 400px;}
    .list-h li{ float:left;}
    #spec-n5{350px; height:56px; padding-top:6px; overflow:hidden;}
    #spec-left{ background:url(images/left.gif) no-repeat; 10px; height:45px; float:left; cursor:pointer; margin-top:5px;}
    #spec-right{background:url(images/right.gif) no-repeat; 10px; height:45px; float:left;cursor:pointer; margin-top:5px;}
    #product_list{ 325px; float:left; overflow:hidden; margin-left:2px; display:inline;}
    #product_list ul li{ float:left; margin-right:0px; display:inline; 62px;}
    #product_list ul li img{ padding:2px ; border:1px solid #ccc; 50px; height:50px;}

    #n{margin:10px auto; 920px; border:1px solid #CCC;font-size:12px; line-height:30px;}
    #n a{ padding:0 4px; color:#333}

    /*proobj www.divcss5.com */
    .proobj{position:relative;padding:0;}
    .zoomdiv{z-index:100;position:absolute;top:1px;left:0px;400px;height:400px;background:url(i/loading.gif) #fff no-repeat center center;border:1px solid #e4e4e4;display:none;text-align:center;overflow: hidden;}
    .bigimg{800px;height:800px;}
    .proobjPup{z-index:10;visibility:hidden;position:absolute;top:0px;left:0px;50px;height:50px;border:1px solid #aaa;background:#FEDE4F 50% top no-repeat;opacity:0.5;-moz-opacity:0.5;-khtml-opacity:0.5;filter:alpha(Opacity=50);cursor:move;}
    #product_list{ position:relative; 322px; margin-right:6px;}
    #product_list div{ margin-top:0;margin-left:-30px; *margin-left:0;}

    index.js

    (function($){
    $.fn.jqueryzoom=function(options){
    var settings={
    xzoom:200,
    yzoom:200,
    offset:10,
    position:"right",
    lens:1,
    preload:1};
    if(options){
    $.extend(settings,options);}
    var noalt='';
    $(this).hover(function(){
    var imageLeft=$(this).offset().left;
    var imageTop=$(this).offset().top;
    var imageWidth=$(this).children('img').get(0).offsetWidth;
    var imageHeight=$(this).children('img').get(0).offsetHeight;
    noalt=$(this).children("img").attr("alt");
    var bigimage=$(this).children("img").attr("jqimg");
    $(this).children("img").attr("alt",'');
    if($("div.zoomdiv").get().length==0){
    $(this).after("<div class='zoomdiv'><img class='bigimg' src='"+bigimage+"'/></div>");
    $(this).append("<div class='proobjPup'>&nbsp;</div>");}
    if(settings.position=="right"){
    if(imageLeft+imageWidth+settings.offset+settings.xzoom>screen.width){
    leftpos=imageLeft-settings.offset-settings.xzoom;}else{
    leftpos=imageLeft+imageWidth+settings.offset;}}else{
    leftpos=imageLeft-settings.xzoom-settings.offset;
    if(leftpos<0){
    leftpos=imageLeft+imageWidth+settings.offset;}}
    $("div.zoomdiv").css({top:imageTop,left:leftpos});
    $("div.zoomdiv").width(settings.xzoom);
    $("div.zoomdiv").height(settings.yzoom);
    $("div.zoomdiv").show();
    if(!settings.lens){
    $(this).css('cursor','crosshair');}
    $(document.body).mousemove(function(e){
    mouse=new MouseEvent(e);
    var bigwidth=$(".bigimg").get(0).offsetWidth;
    var bigheight=$(".bigimg").get(0).offsetHeight;
    var scaley='x';
    var scalex='y';
    if(isNaN(scalex)|isNaN(scaley)){
    var scalex=(bigwidth/imageWidth);
    var scaley=(bigheight/imageHeight);
    $("div.proobjPup").width((settings.xzoom)/(scalex*1));
    $("div.proobjPup").height((settings.yzoom)/(scaley*1));
    if(settings.lens){
    $("div.proobjPup").css('visibility','visible');}}
    xpos=mouse.x-$("div.proobjPup").width()/2-imageLeft;
    ypos=mouse.y-$("div.proobjPup").height()/2-imageTop;
    if(settings.lens){
    xpos=(mouse.x-$("div.proobjPup").width()/2 < imageLeft ) ? 0 : (mouse.x + $("div.proobjPup").width()/2>imageWidth+imageLeft)?(imageWidth-$("div.proobjPup").width()-2):xpos;
    ypos=(mouse.y-$("div.proobjPup").height()/2 < imageTop ) ? 0 : (mouse.y + $("div.proobjPup").height()/2>imageHeight+imageTop)?(imageHeight-$("div.proobjPup").height()-2):ypos;}
    if(settings.lens){
    $("div.proobjPup").css({top:ypos,left:xpos});}
    scrolly=ypos;
    $("div.zoomdiv").get(0).scrollTop=scrolly*scaley;
    scrollx=xpos;
    $("div.zoomdiv").get(0).scrollLeft=(scrollx)*scalex;});},function(){
    $(this).children("img").attr("alt",noalt);
    $(document.body).unbind("mousemove");
    if(settings.lens){
    $("div.proobjPup").remove();}
    $("div.zoomdiv").remove();});
    count=0;
    if(settings.preload){
    $('body').append("<div style='display:none;' class='jqPreload"+count+"'>360buy</div>");
    $(this).each(function(){
    var imagetopreload=$(this).children("img").attr("jqimg");
    var content=jQuery('div.jqPreload'+count+'').html();
    jQuery('div.jqPreload'+count+'').html(content+'<img src="'+imagetopreload+'">');});}}})(jQuery);
    function MouseEvent(e){
    this.x=e.pageX;
    this.y=e.pageY;}
    /*jdMarquee*/
    (function($){$.fn.jdMarquee=function(option,callback){if(typeof option=="function"){callback=option;option={};};var s=$.extend({deriction:"up",speed:10,auto:false,null,height:null,step:1,control:false,_front:null,_back:null,_stop:null,_continue:null,wrapstyle:"",stay:5000,delay:20,dom:"div>ul>li".split(">"),mainTimer:null,subTimer:null,tag:false,convert:false,btn:null,disabled:"disabled",pos:{ojbect:null,clone:null}},option||{});var object=this.find(s.dom[1]);var subObject=this.find(s.dom[2]);var clone;if(s.deriction=="up"||s.deriction=="down"){var height=object.eq(0).outerHeight();var step=s.step*subObject.eq(0).outerHeight();object.css({s.width+"px",overflow:"hidden"});};if(s.deriction=="left"||s.deriction=="right"){var width=subObject.length*subObject.eq(0).outerWidth();object.css({width+"px",overflow:"hidden"});var step=s.step*subObject.eq(0).outerWidth();};var init=function(){var wrap="<div style='position:relative;overflow:hidden;z-index:1;"+s.width+"px;height:"+s.height+"px;"+s.wrapstyle+"'></div>";object.css({position:"absolute",left:0,top:0}).wrap(wrap);s.pos.object=0;clone=object.clone();object.after(clone);switch(s.deriction){default:case "up":object.css({marginLeft:0,marginTop:0});clone.css({marginLeft:0,marginTop:height+"px"});s.pos.clone=height;break;case "down":object.css({marginLeft:0,marginTop:0});clone.css({marginLeft:0,marginTop:-height+"px"});s.pos.clone=-height;break;case "left":object.css({marginTop:0,marginLeft:0});clone.css({marginTop:0,marginLeft:width+"px"});s.pos.clone=width;break;case "right":object.css({marginTop:0,marginLeft:0});clone.css({marginTop:0,marginLeft:-width+"px"});s.pos.clone=-width;break;};if(s.auto){initMainTimer();object.hover(function(){clear(s.mainTimer);},function(){initMainTimer();});clone.hover(function(){clear(s.mainTimer);},function(){initMainTimer();});};if(callback){callback();};if(s.control){initControls();}};var initMainTimer=function(delay){clear(s.mainTimer);s.stay=delay?delay:s.stay;s.mainTimer=setInterval(function(){initSubTimer()},s.stay);};var initSubTimer=function(){clear(s.subTimer);s.subTimer=setInterval(function(){roll()},s.delay);};var clear=function(timer){if(timer!=null){clearInterval(timer);}};var disControl=function(A){if(A){$(s._front).unbind("click");$(s._back).unbind("click");$(s._stop).unbind("click");$(s._continue).unbind("click");}else{initControls();}};var initControls=function(){if(s._front!=null){$(s._front).click(function(){$(s._front).addClass(s.disabled);disControl(true);clear(s.mainTimer);s.convert=true;s.btn="front";if(!s.auto){s.tag=true;};convert();});};if(s._back!=null){$(s._back).click(function(){$(s._back).addClass(s.disabled);disControl(true);clear(s.mainTimer);s.convert=true;s.btn="back";if(!s.auto){s.tag=true;};convert();});};if(s._stop!=null){$(s._stop).click(function(){clear(s.mainTimer);});};if(s._continue!=null){$(s._continue).click(function(){initMainTimer();});}};var convert=function(){if(s.tag&&s.convert){s.convert=false;if(s.btn=="front"){if(s.deriction=="down"){s.deriction="up";};if(s.deriction=="right"){s.deriction="left";}};if(s.btn=="back"){if(s.deriction=="up"){s.deriction="down";};if(s.deriction=="left"){s.deriction="right";}};if(s.auto){initMainTimer();}else{initMainTimer(4*s.delay);}}};var setPos=function(y1,y2,x){if(x){clear(s.subTimer);s.pos.object=y1;s.pos.clone=y2;s.tag=true;}else{s.tag=false;};if(s.tag){if(s.convert){convert();}else{if(!s.auto){clear(s.mainTimer);}}};if(s.deriction=="up"||s.deriction=="down"){object.css({marginTop:y1+"px"});clone.css({marginTop:y2+"px"});};if(s.deriction=="left"||s.deriction=="right"){object.css({marginLeft:y1+"px"});clone.css({marginLeft:y2+"px"});}};var roll=function(){var y_object=(s.deriction=="up"||s.deriction=="down")?parseInt(object.get(0).style.marginTop):parseInt(object.get(0).style.marginLeft);var y_clone=(s.deriction=="up"||s.deriction=="down")?parseInt(clone.get(0).style.marginTop):parseInt(clone.get(0).style.marginLeft);var y_add=Math.max(Math.abs(y_object-s.pos.object),Math.abs(y_clone-s.pos.clone));var y_ceil=Math.ceil((step-y_add)/s.speed);switch(s.deriction){case "up":if(y_add==step){setPos(y_object,y_clone,true);$(s._front).removeClass(s.disabled);disControl(false);}else{if(y_object<=-height){y_object=y_clone+height;s.pos.object=y_object;};if(y_clone<=-height){y_clone=y_object+height;s.pos.clone=y_clone;};setPos((y_object-y_ceil),(y_clone-y_ceil));};break;case "down":if(y_add==step){setPos(y_object,y_clone,true);$(s._back).removeClass(s.disabled);disControl(false);}else{if(y_object>=height){y_object=y_clone-height;s.pos.object=y_object;};if(y_clone>=height){y_clone=y_object-height;s.pos.clone=y_clone;};setPos((y_object+y_ceil),(y_clone+y_ceil));};break;case "left":if(y_add==step){setPos(y_object,y_clone,true);$(s._front).removeClass(s.disabled);disControl(false);}else{if(y_object<=-width){y_object=y_clone+width;s.pos.object=y_object;};if(y_clone<=-width){y_clone=y_object+width;s.pos.clone=y_clone;};setPos((y_object-y_ceil),(y_clone-y_ceil));};break;case "right":if(y_add==step){setPos(y_object,y_clone,true);$(s._back).removeClass(s.disabled);disControl(false);}else{if(y_object>=width){y_object=y_clone-width;s.pos.object=y_object;};if(y_clone>=width){y_clone=y_object-width;s.pos.clone=y_clone;};setPos((y_object+y_ceil),(y_clone+y_ceil));};break;}};if(s.deriction=="up"||s.deriction=="down"){if(height>=s.height&&height>=s.step){init();}};if(s.deriction=="left"||s.deriction=="right"){if(width>=s.width&&width>=s.step){init();}}}})(jQuery);

    放大镜特效:

  • 相关阅读:
    multiprocessing.Pool报pickling error
    Python 数据库的Connection、Cursor两大对象
    python中的tcp示例详解
    Python网络编程篇之select和epoll
    python select epoll poll的解析
    python网络编程——IO多路复用之epoll
    python实现并发服务器实现方式(多线程/多进程/select/epoll)
    python select模块
    CRM客户关系管理系统(七)
    CRM客户关系管理系统(六)
  • 原文地址:https://www.cnblogs.com/jiechen/p/4979234.html
Copyright © 2011-2022 走看看