jQuery补充,模拟图片放大镜

jQuery补充,模拟图片放大镜

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/fdj.css">
</head>
<body>

<div class="outer">                     <!--放大镜主体div-->
    <div class="small_box">             <!--放大镜小图区域-->
        <div class="float"></div>       <!--小图里的玻璃罩区域-->
        <img src="img/small.jpg">
    </div>
    <div class="big_box">               <!--放大镜大图区域-->
        <img src="img/big.jpg">
    </div>
</div>
<script src="jquery/jquery.min.js"></script>
<script src="fdj.js"></script>
</body>
</html>

css

@charset "utf-8";
*{
    margin: 0;
    padding: 0;
}
.outer{                         /*放大镜主体div*/
    width: 350px;
    height: 350px;
    border:5px solid #0f68ee;
}
.outer .small_box{              /*放大镜小图区域*/
    position: relative;
}
.outer .small_box .float{       /*放大镜小图区域里的玻璃罩*/
    width: 175px;
    height: 175px;
    background-color: #ABC7E2;
    opacity: 0.4;
    position: absolute;
    display: none;
}
.outer .big_box{                /*放大镜大图区域*/
    width: 400px;
    height: 400px;
    border:5px solid #0f68ee;
    overflow:hidden;
    position: absolute;
    top: 0;
    left: 370px;
    display: none;
}
.outer .big_box img{
    position: absolute;
}

js

/**
 * Created by admin on 2017/5/10.
 */
$(function () {
    // 当鼠标悬浮到小图片区域的时候,执行鼠标悬浮事件
    $(‘.outer .small_box‘).mouseover(function () {
        $(‘.outer .small_box .float‘).css(‘display‘,‘block‘);           //显示小图片区域里的玻璃罩
        $(‘.outer .big_box‘).css(‘display‘,‘block‘);                    //显示大图片区域
    });
    //当前鼠标离开小图片区域的时候,执行鼠标离开事件
    $(‘.outer .small_box‘).mouseout(function () {
        $(‘.outer .small_box .float‘).css(‘display‘,‘none‘);            //隐藏小图片区域里的玻璃罩
        $(‘.outer .big_box‘).css(‘display‘,‘none‘);                     //隐藏大图片区域
    });
    // 当鼠标在小图片区域移动的时候,执行鼠标移动事件
    $(‘.outer .small_box‘).mousemove(function (e) {
        var _event = e || window.event;                                 //接收事件里的event对象信息

        var small_box_height = $(‘.outer .small_box‘).height();         //获取小图区域div的高度
        var small_box_width = $(‘.outer .small_box‘).width();           //获取小图区域div的宽度

        var float_height = $(‘.outer .small_box .float‘).height();      //获取小图区域里的玻璃罩高度
        var float_width = $(‘.outer .small_box .float‘).width();        //获取小图区域里的玻璃罩宽度

        var float_height_ban = $(‘.outer .small_box .float‘).height()/2;    //获取小图区域里的玻璃罩一半高度
        var float_width_ban = $(‘.outer .small_box .float‘).width()/2;      //获取小图区域里的玻璃罩一半宽度

        //换算玻璃罩滑动值
        var mouse_left = _event.clientX - float_width_ban;                  //将鼠标点与左边边距,减去玻璃罩的一半,就是玻璃罩横向滑动值
        var mouse_top = _event.clientY - float_height_ban;                  //将鼠标点与上边边距,减去玻璃罩的一百,就是玻璃罩纵向滑动值

        if (mouse_left < 0){                                                //玻璃罩横向滑动值,如果小于0
            mouse_left = 0;                                                 //将璃罩横向滑动值,设置为0
        }else if (mouse_left >small_box_width - float_width){               //判断璃罩横向滑动值,如果大于了小图区域宽度减去玻璃罩宽度,说明璃罩横向滑动值向右已经超出了小图区域
            mouse_left = small_box_width - float_width;                     //将璃罩横向滑动值,设置成小图区域宽度减去玻璃罩宽度,就是横向滑动值向右到头
        }

        if (mouse_top < 0){                                                 //玻璃罩纵向滑动值,如果小于0
            mouse_top = 0;                                                  //将璃罩纵向滑动值,设置为0
        }else if (mouse_top >small_box_height - float_height){              //判断璃罩纵向滑动值,如果大于了小图区域高度减去玻璃罩高度,说明璃罩纵向滑动值向下已经超出了小图区域
            mouse_top = small_box_height - float_height;                    //将璃罩纵向滑动值,设置成小图区域高度减去玻璃罩高度,就是纵向滑动值向下到头
        }

        $(‘.outer .small_box .float‘).css(‘left‘,mouse_left + ‘px‘);        //获取到玻璃罩纵向滑动值
        $(‘.outer .small_box .float‘).css(‘top‘,mouse_top + ‘px‘);          //获取到玻璃罩横向滑动值

        //换算大图滑动比例
        //将大图片的宽度减去大图容器div宽度,除以小图容器div宽度减去玻璃罩宽度,等于大图反向横向滑动比例
        var percentX = ($(‘.outer .big_box img‘).width()-$(‘.outer .big_box‘).width())/(small_box_width-float_width);
        //将大图片的高度减去大图容器div高度,除以小图容器div高度减去玻璃罩高度,等于大图反向纵向滑动比例
        var percentY = ($(‘.outer .big_box img‘).height()-$(‘.outer .big_box‘).height())/(small_box_height-float_height);

        $(‘.outer .big_box img‘).css(‘left‘,-percentX*mouse_left+‘px‘); //反向横向滑动比例,除以玻璃罩横向滑动值,等于大图横向滑动值
        $(‘.outer .big_box img‘).css(‘top‘,-percentY*mouse_top+‘px‘);   //反向纵向滑动比例,除以玻璃罩纵向滑动值,等于大图纵向滑动值
    });

});
时间: 2025-01-01 08:12:55

jQuery补充,模拟图片放大镜的相关文章

jquery.jqzoom.js图片放大镜

jqzoom插件实现图片放大镜效果 1. jquery.jqzoom.js //************************************************************** // jQZoom allows you to realize a small magnifier window,close // to the image or images on your web page easily. // // jqZoom version 2.2 // Autho

15款商城网站常用的图片放大镜特效

jquery图片放大镜效果制作变焦镜头图片放大查看代码 jQuery图片放大镜插件鼠标悬停图片放大镜头显示代码 jQuery鼠标滑过图片放大镜效果_淘宝图片放大镜代码 jquery jqzoom仿京东商城商品详细页面图片放大镜_选项卡切换效果 原生js MagicZoom.js放大镜插件商城商品多图片放大镜效果展示 jquery.imagezoom图片放大镜插件仿淘宝店铺商品放大镜展示 jquery etalage图片放大镜插件鼠标移到小图片放大预览图片 jQuery图片放大窗口显示和图片组合缩

jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)

1.表单验证插件--validate   该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下: $(form).validate({options}) 其中form参数表示表单元素名称,options参数表示调用方法时的配置对象,所有的验证规则和异常信息显示的位置都在该对象中进行设置.     2.表单插件--form 通过表单form插件,调用ajaxForm()方法,实现ajax方式向服务器提交表单数据,并通过方法中的option

Jquery插件——图片放大镜

偶然前端网发现了一个比较好的图片放大镜效果插件,稍作修改完善了一下,下面分享给大家. 效果还不错,如下图: <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>放大镜</title> <style type="text/css"> body { margin:200px; background:#000; } ol,

基于jQuery仿淘宝产品图片放大镜代码

今天给大家分享一款 基于jQuery淘宝产品图片放大镜代码.这是一款基于jquery.imagezoom插件实现的jQuery放大镜.适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="box"> <div class="tb-booth tb-pic tb-s310"> <a href=&q

图片放大镜——jQuery插件Cloud Zoom

下载地址:cloud_zoom.rar 图片放大镜效果是一种不错的效果,多应用于电子商务.图片展示等网站,给用户带来更好的体验.实现这种效果的代码不少,今天要给大家介绍的是 Cloud Zoom,它是 jQuery 的一个插件.和其他产品相比,Cloud Zoom 具有代码少.功能多.兼容性好等特点,并且支持 Tint. Soft Focus 和 Inner 三种放大镜模式.在a标签中的rel属性设置不同的属性值,可以显示不同效果哦:1.默认模式:rel="adjustX: 10, adjust

jquery图片放大镜效果制作变焦镜头图片放大查看

jquery图片放大镜效果制作变焦镜头图片放大查看 http://www.17sucai.com/pins/demoshow/8511

jQuery和CSS3打造逼真的图片放大镜效果

这是一款效果非常逼真的jQuery和CSS3超逼真的图片放大镜特效.该图片放大镜特效使用CSS3的box-shadow和border-radius实现来制作放大镜的样式,使用jQuery来获取当前鼠标的坐标系,并修改当前坐标系的背景图像. 在线演示: 下载地址:http://www.htmleaf.com/jQuery/Image-Effects/201503171533.html

jQuery轻量级简单实用的图片放大镜特效

zoomtoo是一款轻量级的简单实用的jQuery图片放大镜特效插件.这个图片放大镜特效在鼠标滑过图片的时候,在原来图片区域内部将图片放大.鼠标进入和离开图片区域时都带有淡入淡出的效果. 浏览器兼容: Firefox 2+ (Win, Mac, Linux) IE7+ (Win) Chrome 6+ (Win, Mac, Linux, Android, iPhone) Safari 3.2+ (Win, Mac, iPhone) Opera 8+ (Win, Mac, Linux, Androi