zoukankan      html  css  js  c++  java
  • 网站图片的放大镜效果

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 
      3 <html xmlns="http://www.w3.org/1999/xhtml">
      4 
      5 <head>
      6 
      7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      8 
      9 <title>jQuery网站商品图片放大镜效</title>
     10 
     11 <script type="text/javascript" src="js/jquery.1.4.2-min.js"></script>
     12 
     13 <style type="text/css">
     14 
     15 /* reset */
     16 
     17 body{font:12px/18px "宋体",arial,sans-serif;color:#585858;}
     18 
     19 body,div,p,span,form,iframe,table,td,th,input,textarea,button,label,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6{margin:0;padding:0;}
     20 
     21 h1,h2,h3,h4,h5,h6{font-size:100%; }
     22 
     23 ul,ol,li,dl{list-style-type:none;}
     24 
     25 em,i,dfn,cite,strong,small{font-style:normal;} 
     26 
     27 img{border:0;}
     28 
     29 fieldset,button,input,select,option{vertical-align:middle;font:12px/18px "宋体",arial,sans-serif;}
     30 
     31 table{border-collapse:collapse;border-spacing:0}
     32 
     33 textarea{resize:none}
     34 
     35 /* color */
     36 
     37 a:link,a:visited{color:#575757;text-decoration:none;}
     38 
     39 a:hover{color:#ef4165;text-decoration:none;}
     40 
     41 a:active{color:#1d7400;}
     42 
     43 /* clearfix */
     44 
     45 .clearfix:after{ visibility:hidden; display:block; font-size:0; content:" "; clear:both; height:0;}
     46 
     47 *html .clearfix{ zoom:1;}
     48 
     49 
     50 
     51 
     52 
     53 
     54 .preview{width:400px; height:465px; margin:50px 0px 0px 150px;}
     55 
     56 /* smallImg */
     57 
     58 .smallImg{position:relative; height:52px; margin-top:1px; background-color:#F1F0F0; padding:6px 5px; width:390px; overflow:hidden;float:left;}
     59 
     60 .scrollbutton{width:14px; height:50px; overflow:hidden; position:relative; float:left; cursor:pointer; }
     61 
     62 .scrollbutton.smallImgUp , .scrollbutton.smallImgUp.disabled{background:url(images/d_08.png) no-repeat;}
     63 
     64 .scrollbutton.smallImgDown , .scrollbutton.smallImgDown.disabled{background:url(images/d_09.png) no-repeat; margin-left:375px; margin-top:-50px;}
     65 
     66 
     67 
     68 #imageMenu {height:50px; width:360px; overflow:hidden; margin-left:0; float:left;}
     69 
     70 #imageMenu li {height:50px; width:60px; overflow:hidden; float:left; text-align:center;}
     71 
     72 #imageMenu li img{width:50px; height:50px;cursor:pointer;}
     73 
     74 #imageMenu li#onlickImg img, #imageMenu li:hover img{ width:44px; height:44px; border:3px solid #959595;}
     75 
     76 /* bigImg */
     77 
     78 .bigImg{position:relative; float:left; width:400px; height:400px; overflow:hidden;}
     79 
     80 .bigImg #midimg{width:400px; height:400px;}
     81 
     82 .bigImg #winSelector{width:235px; height:210px;}
     83 
     84 #winSelector{position:absolute; cursor:crosshair; filter:alpha(opacity=15); -moz-opacity:0.15; opacity:0.15; background-color:#000; border:1px solid #fff;}
     85 
     86 /* bigView */
     87 
     88 #bigView{position:absolute;border: 1px solid #959595; overflow: hidden; z-index:999;}
     89 
     90 #bigView img{position:absolute;}
     91 
     92 </style>
     93 
     94 </head>
     95 
     96 <body>
     97 
     98 <div class="preview">
     99 
    100     <div id="vertical" class="bigImg">
    101 
    102         <img src="mid/05.jpg" width="400" height="400" alt="" id="midimg" />
    103 
    104         <div style="display:none;" id="winSelector"></div>
    105 
    106     </div><!--bigImg end-->    
    107 
    108     <div class="smallImg">
    109 
    110         <div class="scrollbutton smallImgUp disabled"></div>
    111 
    112         <div id="imageMenu">
    113 
    114             <ul>
    115 
    116                 <li id="onlickImg"><img src="small/05.jpg" width="68" height="68" alt="洋妞"/></li>
    117 
    118                 <li><img src="small/02.jpg" width="68" height="68" alt="洋妞"/></li>
    119 
    120                 <li><img src="small/03.jpg" width="68" height="68" alt="洋妞"/></li>
    121 
    122                 <li><img src="small/04.jpg" width="68" height="68" alt="洋妞"/></li>
    123 
    124                 <li><img src="small/01.jpg" width="68" height="68" alt="洋妞"/></li>
    125 
    126                 <li><img src="small/06.jpg" width="68" height="68" alt="洋妞"/></li>
    127 
    128                 <li><img src="small/04.jpg" width="68" height="68" alt="洋妞"/></li>
    129 
    130             </ul>
    131 
    132         </div>
    133 
    134         <div class="scrollbutton smallImgDown"></div>
    135 
    136     </div><!--smallImg end-->    
    137 
    138     <div id="bigView" style="display:none;"><img width="800" height="800" alt="" src="" /></div>
    139 
    140 </div>
    141 
    142 <!--preview end-->
    143 
    144 <script type="text/javascript">
    145 
    146 $(document).ready(function(){
    147 
    148     // 图片上下滚动
    149 
    150     var count = $("#imageMenu li").length - 5; /* 显示 6 个 li标签内容 */
    151 
    152     var interval = $("#imageMenu li:first").width();
    153 
    154     var curIndex = 0;
    155 
    156     
    157 
    158     $('.scrollbutton').click(function(){
    159 
    160         if( $(this).hasClass('disabled') ) return false;
    161 
    162         
    163 
    164         if ($(this).hasClass('smallImgUp')) --curIndex;
    165 
    166         else ++curIndex;
    167 
    168         
    169 
    170         $('.scrollbutton').removeClass('disabled');
    171 
    172         if (curIndex == 0) $('.smallImgUp').addClass('disabled');
    173 
    174         if (curIndex == count-1) $('.smallImgDown').addClass('disabled');
    175 
    176         
    177 
    178         $("#imageMenu ul").stop(false, true).animate({"marginLeft" : -curIndex*interval + "px"}, 600);
    179 
    180     });    
    181 
    182     // 解决 ie6 select框 问题
    183 
    184     $.fn.decorateIframe = function(options) {
    185 
    186         if ($.browser.msie && $.browser.version < 7) {
    187 
    188             var opts = $.extend({}, $.fn.decorateIframe.defaults, options);
    189 
    190             $(this).each(function() {
    191 
    192                 var $myThis = $(this);
    193 
    194                 //创建一个IFRAME
    195 
    196                 var divIframe = $("<iframe />");
    197 
    198                 divIframe.attr("id", opts.iframeId);
    199 
    200                 divIframe.css("position", "absolute");
    201 
    202                 divIframe.css("display", "none");
    203 
    204                 divIframe.css("display", "block");
    205 
    206                 divIframe.css("z-index", opts.iframeZIndex);
    207 
    208                 divIframe.css("border");
    209 
    210                 divIframe.css("top", "0");
    211 
    212                 divIframe.css("left", "0");
    213 
    214                 if (opts.width == 0) {
    215 
    216                     divIframe.css("width", $myThis.width() + parseInt($myThis.css("padding")) * 2 + "px");
    217 
    218                 }
    219 
    220                 if (opts.height == 0) {
    221 
    222                     divIframe.css("height", $myThis.height() + parseInt($myThis.css("padding")) * 2 + "px");
    223 
    224                 }
    225 
    226                 divIframe.css("filter", "mask(color=#fff)");
    227 
    228                 $myThis.append(divIframe);
    229 
    230             });
    231 
    232         }
    233 
    234     }
    235 
    236     $.fn.decorateIframe.defaults = {
    237 
    238         iframeId: "decorateIframe1",
    239 
    240         iframeZIndex: -1,
    241 
    242          0,
    243 
    244         height: 0
    245 
    246     }
    247 
    248     //放大镜视窗
    249 
    250     $("#bigView").decorateIframe();
    251 
    252     //点击到中图
    253 
    254     var midChangeHandler = null;
    255 
    256     
    257 
    258     $("#imageMenu li img").bind("click", function(){
    259 
    260         if ($(this).attr("id") != "onlickImg") {
    261 
    262             midChange($(this).attr("src").replace("small", "mid"));
    263 
    264             $("#imageMenu li").removeAttr("id");
    265 
    266             $(this).parent().attr("id", "onlickImg");
    267 
    268         }
    269 
    270     }).bind("mouseover", function(){
    271 
    272         if ($(this).attr("id") != "onlickImg") {
    273 
    274             window.clearTimeout(midChangeHandler);
    275 
    276             midChange($(this).attr("src").replace("small", "mid"));
    277 
    278             $(this).css({ "border": "3px solid #959595" });
    279 
    280         }
    281 
    282     }).bind("mouseout", function(){
    283 
    284         if($(this).attr("id") != "onlickImg"){
    285 
    286             $(this).removeAttr("style");
    287 
    288             midChangeHandler = window.setTimeout(function(){
    289 
    290                 midChange($("#onlickImg img").attr("src").replace("small", "mid"));
    291 
    292             }, 1000);
    293 
    294         }
    295 
    296     });
    297 
    298     function midChange(src) {
    299 
    300         $("#midimg").attr("src", src).load(function() {
    301 
    302             changeViewImg();
    303 
    304         });
    305 
    306     }
    307 
    308     //大视窗看图
    309 
    310     function mouseover(e) {
    311 
    312         if ($("#winSelector").css("display") == "none") {
    313 
    314             $("#winSelector,#bigView").show();
    315 
    316         }
    317 
    318         $("#winSelector").css(fixedPosition(e));
    319 
    320         e.stopPropagation();
    321 
    322     }
    323 
    324     function mouseOut(e) {
    325 
    326         if ($("#winSelector").css("display") != "none") {
    327 
    328             $("#winSelector,#bigView").hide();
    329 
    330         }
    331 
    332         e.stopPropagation();
    333 
    334     }
    335 
    336     $("#midimg").mouseover(mouseover); //中图事件
    337 
    338     $("#midimg,#winSelector").mousemove(mouseover).mouseout(mouseOut); //选择器事件
    339 
    340 
    341 
    342     var $divWidth = $("#winSelector").width(); //选择器宽度
    343 
    344     var $divHeight = $("#winSelector").height(); //选择器高度
    345 
    346     var $imgWidth = $("#midimg").width(); //中图宽度
    347 
    348     var $imgHeight = $("#midimg").height(); //中图高度
    349 
    350     var $viewImgWidth = $viewImgHeight = $height = null; //IE加载后才能得到 大图宽度 大图高度 大图视窗高度
    351 
    352 
    353 
    354     function changeViewImg() {
    355 
    356         $("#bigView img").attr("src", $("#midimg").attr("src").replace("mid", "big"));
    357 
    358     }
    359 
    360     changeViewImg();
    361 
    362     $("#bigView").scrollLeft(0).scrollTop(0);
    363 
    364     function fixedPosition(e) {
    365 
    366         if (e == null) {
    367 
    368             return;
    369 
    370         }
    371 
    372         var $imgLeft = $("#midimg").offset().left; //中图左边距
    373 
    374         var $imgTop = $("#midimg").offset().top; //中图上边距
    375 
    376         X = e.pageX - $imgLeft - $divWidth / 2; //selector顶点坐标 X
    377 
    378         Y = e.pageY - $imgTop - $divHeight / 2; //selector顶点坐标 Y
    379 
    380         X = X < 0 ? 0 : X;
    381 
    382         Y = Y < 0 ? 0 : Y;
    383 
    384         X = X + $divWidth > $imgWidth ? $imgWidth - $divWidth : X;
    385 
    386         Y = Y + $divHeight > $imgHeight ? $imgHeight - $divHeight : Y;
    387 
    388 
    389 
    390         if ($viewImgWidth == null) {
    391 
    392             $viewImgWidth = $("#bigView img").outerWidth();
    393 
    394             $viewImgHeight = $("#bigView img").height();
    395 
    396             if ($viewImgWidth < 200 || $viewImgHeight < 200) {
    397 
    398                 $viewImgWidth = $viewImgHeight = 800;
    399 
    400             }
    401 
    402             $height = $divHeight * $viewImgHeight / $imgHeight;
    403 
    404             $("#bigView").width($divWidth * $viewImgWidth / $imgWidth);
    405 
    406             $("#bigView").height($height);
    407 
    408         }
    409 
    410         var scrollX = X * $viewImgWidth / $imgWidth;
    411 
    412         var scrollY = Y * $viewImgHeight / $imgHeight;
    413 
    414         $("#bigView img").css({ "left": scrollX * -1, "top": scrollY * -1 });
    415 
    416         $("#bigView").css({ "top": 75, "left": $(".preview").offset().left + $(".preview").width() + 15 });
    417 
    418 
    419 
    420         return { left: X, top: Y };
    421 
    422     }
    423 
    424 });
    425 
    426 </script>
    427 
    428 </body>
    429 
    430 </html> 
  • 相关阅读:
    关于celery踩坑
    关于git的分批提交pull requests流程
    SymGAN—Exploiting Images for Video Recognition: Heterogeneous Feature Augmentation via Symmetric Adversarial Learning学习笔记
    AFN—Larger Norm More Transferable: An Adaptive Feature Norm Approach for Unsupervised Domain Adaptation学习笔记
    Learning to Transfer Examples for Partial Domain Adaptation学习笔记
    Partial Adversarial Domain Adaptation学习笔记
    Partial Transfer Learning with Selective Adversarial Networks学习笔记
    Importance Weighted Adversarial Nets for Partial Domain Adaptation学习笔记
    Exploiting Images for Video Recognition with Hierarchical Generative Adversarial Networks学习笔记
    improved open set domain adaptation with backpropagation 学习笔记
  • 原文地址:https://www.cnblogs.com/yangguoe/p/8510890.html
Copyright © 2011-2022 走看看