`
keimon
  • 浏览: 74782 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

图片放大镜效果

阅读更多



 

注释:* 测试兼容it8,ff,chome,其余浏览器未测试;
         * ff和chrome中需要设置图片的高度宽度;

<!doctype html>
<html>
    <head><meta charset="gb2312">
        <title></title>
  <script type="text/javascript" src="jquery-1.8.3.js"></script>
        <style>
            .goods_img {
                cursor: pointer;
                float: left;
                padding: 0;
                position: relative;
                width: 342px;
                height: 455px;
                margin-left: 200px;
            }
            .bigImg{display: block;}
            body{ margin: 10px auto;}
        </style>
    </head>
    <body>
        <div class="goods_img">
            <img id="mediumImg" src="small_img.jpg" zoomSrc="big_img.jpg"/>
        </div>
  <div id="a"></div>
  <div id="b"></div>
  <div id="c"></div>
    </body>
<script>
 /*
  * sImg:小图片的jquery对象;
  * 小图片中的zoomSrc存储大图片的地址;
  * 测试兼容it8,ff,chome,360;
  * ff和chrome中需要设置图片的高度宽度;
  ***keimon***2013-01-07***
 */
function showBigImg(sImg){
  var sContent = sImg[0].parentNode;
  var sWidth = sImg.width() || 345; //chrome中不能自动获得图片的宽度和高度,需设置;
  var sHeight = sImg.height() || 455;//
  var sLeft = $(sContent).offset().left;
  var sTop = $(sContent).offset().top;
  var sLeft = $(sContent).offset().left;
 
  var bLeft = sLeft+sWidth+10;
  var bTop = sTop;
  var bImgSrc = sImg.attr('zoomSrc');
 
  //放置大图片的div框
  var bContent = document.createElement('div');
  var bContentStyle = {
     width:sWidth+'px',
  height:sHeight+'px',
  left : bLeft+'px',
  top : bTop +'px',
  border :'1px solid #000',
  overflow : 'hidden',
  visibility : 'hidden',
  position: 'absolute'
  }
  $(bContent).css(bContentStyle);
  $('body').get(0).appendChild(bContent);
  var bigImg = document.createElement('img');
  $(bigImg).attr({'id':'bImg','src':bImgSrc});
  var bigImgStyle = {
    position:'absolute',
 top:'0px',
 left:'0px',
 width:'1200px',  //需要设置大图的宽度和高度,否则ff浏览器中存在问题;
 height:'1600px'  //
  }
  $(bigImg).css(bigImgStyle);
  bContent.appendChild(bigImg);
  //$(bContent).append($('<img id="bImg" style="position:absolute; top:0px; left:0px;">'))
  //$('#bImg').attr('src',bImgSrc);
 
  var bWidth = $('#bImg').width();
  var bHeight = $('#bImg').height();
  var hoverDivWidth = sWidth/bWidth * sWidth;
  var hoverDivHeight = sHeight/bHeight * sHeight;
  $('#a').html('hoverDivWidth'+hoverDivWidth);
  $('#b').html('sWidth'+sWidth);
  $('#c').html('bWidth'+bWidth);
 
  //鼠标移入时,在小图片上的div框
  var hoverDiv = document.createElement('div');
  var hoverDivStyle = {
   width:hoverDivWidth + 'px',
  height:hoverDivHeight + 'px',
  border:'1px solid #fff',
  backgroundColor:'#fff',
  position:'absolute',
  visibility : 'hidden',
  left:'0px',
  top:'0px',
  zIndex:999,
  opacity:0.5
  }
  $(hoverDiv).css(hoverDivStyle);
  sContent.appendChild(hoverDiv);
  //鼠标在小图片上移动时,hoverDiv的位置发生变化,大图片的位置也发生变化;
  $(sContent).mousemove(function(e){
    var x = e.pageX;
 var y = e.pageY;
 var sx = x - sLeft - hoverDivWidth/2;
 if(sx<0){
   sx = 0;
 }else if(sx>(sWidth-hoverDivWidth)){
   sx = sWidth-hoverDivWidth;
 }
 var sy = y - sTop - hoverDivHeight/2;
 if(sy<0){
   sy = 0;
 }else if(sy>(sHeight-hoverDivHeight)){
   sy = sHeight-hoverDivHeight;
 }
 $(hoverDiv).css('visibility','visible');
 //hoverDiv
 
 $(hoverDiv).css('left', sx+'px');
 $(hoverDiv).css('top', sy+'px');
 //大图片
 $('#bImg').css('visibility','visible');
 var bx = -sx/sWidth*bWidth;
 var by = -sy/sHeight*bHeight;
 $('#bImg').css('left',bx+'px');
 $('#bImg').css('top',by+'px'); 
  })
  $(sContent).mouseout(function(){
    $(hoverDiv).css('visibility','hidden');
 $('#bImg').css('visibility','hidden')
  })
}

//调用放大镜方法
$(function(){
var sImg = $('#mediumImg');
showBigImg(sImg);
})

</script>
</html>

  • 大小: 49.3 KB
分享到:
评论

相关推荐

    简单实用jQuery图片放大镜效果

    在网页设计中,为了提升用户体验,常常会使用到图片放大镜效果。这种效果可以让用户在鼠标悬停在图片上时,看到图片的局部放大视图,就像在实体店中通过放大镜查看商品细节一样。本教程将详细介绍如何使用jQuery实现...

    react仿淘宝图片放大镜效果

    使用react写一个仿图片放大镜效果使用react写一个仿图片放大镜效果

    jQuery图片放大镜效果

    在网页设计中,为了提升用户体验,常常会使用到图片放大镜效果。这种效果可以让用户在鼠标悬停在图片上时,看到图片的局部放大视图,就像在实体店中通过放大镜观察商品一样。jQuery,一个广泛使用的JavaScript库,...

    js实现图片放大镜效果

    在网页设计中,图片放大镜效果是一种常见的交互设计,它能提供用户更细致查看产品细节的能力,尤其在电商网站上非常常见。JavaScript 是实现这种效果的理想选择,因为它可以在客户端动态处理DOM元素,实现即时的视觉...

    jquery图片放大镜效果鼠标移到图片放大CloudZoom

    在网页设计中,为了提升用户体验,常常会使用到图片放大镜效果。这种效果可以在用户将鼠标悬停在图片上时,使图片的部分区域以更大的比例显示,方便用户查看细节。"jquery图片放大镜效果鼠标移到图片放大CloudZoom...

    jQuery仿淘宝商品详情页图片放大镜效果,支持IE6及以上

    "jQuery仿淘宝商品详情页图片放大镜效果"就是一个实现这种功能的技术方案,它适用于IE6及以上的浏览器,旨在提供与淘宝网站类似的放大镜效果。 首先,jQuery是一个强大的JavaScript库,它的易用性和丰富的插件使其...

    jquery实现图片放大镜效果

    本文将详细介绍如何使用JavaScript库jQuery来实现这一功能,主要围绕"jQuery实现图片放大镜效果"这一主题展开。 首先,jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。...

    jqzoom实现京东商品详细页产品图片放大镜效果.zip

    jqZoom是一种广泛应用于电商网站的JavaScript插件,它主要用于实现商品详细页面上的图片放大镜效果。这个效果使得用户能够在不离开原始图片位置的情况下,通过鼠标悬停或点击,查看商品图片的局部细节,从而提高购物...

    图片放大镜效果示例

    在IT领域,图片放大镜效果通常用于电商网站或者图像展示应用中,允许用户对细节部分进行查看,提高用户体验。这个示例项目就是针对这一需求设计的,它利用JavaScript技术实现了一个图片放大镜的功能。 首先,我们要...

    javascript图片放大镜效果

    JavaScript图片放大镜效果是一种常见的网页交互功能,常用于电商网站的商品展示,允许用户在鼠标悬停或点击图片时查看图片的细节部分。这种效果通过结合HTML、CSS和JavaScript技术实现,为用户提供更好的视觉体验。 ...

    商城图片放大镜效果源码

    在电子商务网站中,图片放大镜效果是一个非常常见的功能,它能提供给用户更细致的产品查看体验,特别是对于服装、饰品等细节丰富的商品。本资源提供的是一个商城图片放大镜效果的源码,包含了10种不同的实现方式,...

    jquery图片放大镜插件制作多种图片放大镜效果.rar

    本资源“jquery图片放大镜插件制作多种图片放大镜效果.rar”显然是一个关于使用jQuery实现图片放大镜功能的项目压缩包。在电商网站、产品展示页面等场景,图片放大镜功能可以让用户更清晰地查看商品细节,提高用户...

    zoomimage(图片放大镜效果)

    在网页设计和开发中,有时候为了提供用户更好的交互体验,我们常常会利用JavaScript或相关的库实现一些特殊的效果,比如图片放大镜效果。标题中的"zoomimage"就是这样一个功能,它能够在用户点击图片时,呈现出一个...

    购物网站图片放大镜效果

    购物网站上的图片放大镜效果是一种常见的交互设计,它允许用户在不离开商品页面的情况下,查看商品图片的细节,从而提高用户的浏览体验和购买决策的准确性。这种效果通过将鼠标悬停在图片上时,显示出一个浮动的放大...

Global site tag (gtag.js) - Google Analytics