• 图片放大镜javascript实现


    <!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>图片放大镜的js实现</title>

    <style type="text/css">

    #smallpic{position:relative}    

    #bigbox{border:1px #c33 solid; overflow:hidden}    

    #view{border:1px #ddd solid;position:absolute}     

    </style>

    <script language="JavaScript" type="text/javascript">    

    <!--

        var srcX; //原图大小      

        var srcY;

        var bigX; //预览窗大小,可以任意设置     

        var bigY;

        var smallX; //缩略图宽度      

        var smallY;

        var viewX; //预览范围   

        var viewY;

        var bl; //缩小比例   

        var border; //边框 

     

        window.onload = function() {

            var bigbox = document.getElementById("bigbox");

            var view = document.getElementById("view");

            var smallpic = document.getElementById("smallpic");

            var bigpic = document.getElementById("bigpic");

            //初始设置 

            srcX = smallpic.width; //原图大小 

            srcY = smallpic.height;

            bigX = 360; //预览窗大小,可以任意设置 

            bigY = 360;

            smallX = 400; //缩略图宽度   

            smallY = srcY * smallX / srcX;

            viewX = bigX / srcX * smallX; //预览范围   

            viewY = bigY / srcY * smallY;

            bl = srcX / smallX; //缩小比例

            border = 2; //边框  

     

            bigbox.style.display = 'none';

            view.style.display = 'none';

     

            smallpic.width = smallX;

            smallpic.height = smallY;

            bigpic.width = srcX;

            bigpic.height = srcY;

            view.style.width = viewX + 'px';

            view.style.height = viewY + 'px';

            bigbox.style.borderWidth = border + 'px';

     

     

            if (window.event) {

                bigbox.style.width = bigX + border * 2 - 20;

                bigbox.style.height = bigY + border * 2 - 20;

            } else {

                bigbox.style.width = bigX + 'px';

                bigbox.style.height = bigY + 'px';

            }

        }

        function move(e) {

            var e = window.event ? window.event : e;

            var iebug = 0;

            var bigbox = document.getElementById("bigbox");

            var bigpic = document.getElementById("bigpic");

            var view = document.getElementById("view");

            var smallpic = document.getElementById("smallpic");

     

            bigbox.style.display = "";

            view.style.display = "";

     

            if (window.event) {

                var vX = e.offsetX - viewX / 2;

                var vY = e.offsetY - viewY / 2;

            } else {

                var vX = e.pageX - viewX / 2 - smallpic.offsetLeft - border;

                var vY = e.pageY - viewY / 2 - smallpic.offsetTop - border;

                iebug = 2;

            }

            if (vX < 0) vX = 0;

            if (vY < 0) vY = 0;

            if (vX > smallX - viewX - iebug) vX = smallX - viewX - iebug;

            if (vY > smallY - viewY - iebug) vY = smallY - viewY - iebug;

     

     

            bigpic.style.marginLeft = -vX * bl + 'px';

            bigpic.style.marginTop = -vY * bl + 'px';

     

            if (window.event) {

                view.style.left = vX + e.clientX - e.offsetX - 2;

                view.style.top = vY + e.clientY - e.offsetY - 2;

     

                if (e.clientX - e.offsetX > smallpic.offsetWidth || e.clientY - e.offsetY > smallpic.offsetHeight)

                    smallpic.onmouseout();

            } else {

                view.style.left = (vX + smallpic.offsetLeft) + 'px';

                view.style.top = (vY + smallpic.offsetTop) + 'px';

            }

        }

     

        function out() {

            var bigbox = document.getElementById("bigbox");

            var view = document.getElementById("view");

            bigbox.style.display = "none";

            view.style.display = "none";

        }     

    //-->      

    </script>      

    </head>

    <body> 

    <table border="0" cellspacing="0" cellpadding="0"> 

    <tr>

        <td>11</td>

        <td height="100">12</td>      

        <td>13</td>

    </tr>     

    <tr>      

        <td width="100" height="500" align="right">2123423423</td>    

        <td width="500"><img id="smallpic" src="http://desk.blueidea.com/DESK/XP/Vista_green_3/Vista_green_3020.jpg" border="0" onmousemove="move(event)" onmouseout="out()"></td>    

        <td width="500">      

        <div id="bigbox"><img id="bigpic" src="http://desk.blueidea.com/DESK/XP/Vista_green_3/Vista_green_3020.jpg" border="0"></div>    

        <div id="view" onmousemove="move(event)" onmouseout="out()"></div></td>      

    </tr>     

    <tr>      

        <td>31</td>

        <td>32</td>

        <td>33</td>

    </tr>     

    </table>      

    </body>

    </html> 

  • 相关阅读:
    SSM框架的基本配置
    Python开发的飞机打外星人小游戏
    python中count和index
    破解Xmind时长
    光流法简介
    Linux常用命令
    GitHub常用命令
    极大似然估计与最大后验概率估计
    在linux上加速git clone
    Endnote导入共享数据
  • 原文地址:https://www.cnblogs.com/cyan/p/1271363.html
Copyright © 2020-2023  润新知