zoukankan      html  css  js  c++  java
  • 实用的JS图片放大镜特效

    实用的JS图片放大镜特效,鼠标放上后,根据鼠标悬停的区域放大图片,可用作产品图片放大,本图片放大的原理是调用大图片,在网页上以小图显示,鼠标悬停放大后的图像实际上是显示的原图片。因此来说,网页加载可能有点慢,测试时候请稍等片刻。

    【源代码展示】

    <!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>
    <title>Js图片放大代码</title>
    <style type="text/css">
    #div1 { width:304px; height:222px; position:relative; margin:30px auto 0px;}
    #div1 img{width:304px; height:222px;}
    #div1 span { width:100px; height:100px; background:red; left:0px;top:0px; position:absolute; display:none; filter:alpha(opacity:20); opacity:0.2;}
    .show { width:100%; height:100%; background:red; position:absolute; z-index:10px; filter:alpha(opacity:10); opacity:0.1; left:0px; top:0px; }
    #div2 {width:304px; height:222px; position:relative; display:none; overflow:hidden; margin:0px auto 0px;}
    #img1 { position:absolute;}
    </style>
    <script type="text/javascript">
    window.onload=function ()
    {
        var oDiv=document.getElementById('div1');
        var oShow=oDiv.getElementsByTagName('div')[0];
        var oSpan=oDiv.getElementsByTagName('span')[0];
        var oImg=document.getElementById('img1');
        oShow.onmouseover=function()
        {
            oSpan.style.display='block';
            oImg.parentNode.style.display='block';
        };
        oShow.onmouseout=function()
        {
            oSpan.style.display='none';
            oImg.parentNode.style.display='none';
        };
        oShow.onmousemove=function(ev)
        {
            var oEvent=ev||event;
            var x=oEvent.clientX-oDiv.offsetLeft-oSpan.offsetWidth/2;
            var y=oEvent.clientY-oDiv.offsetTop-oSpan.offsetHeight/2;
            
            if(x<0)
            {
                x=0;
            }
            else if(x>oShow.offsetWidth-oSpan.offsetWidth)
            {
                x=oShow.offsetWidth-oSpan.offsetWidth;
            }
            if(y<0)
            {
                y=0;
            }
            else if(y>oShow.offsetHeight-oSpan.offsetHeight)
            {
                y=oShow.offsetHeight-oSpan.offsetHeight
            }
            oSpan.style.left=x+'px';
            oSpan.style.top=y+'px';
            var percentX=x/(oShow.offsetWidth-oSpan.offsetWidth);
            var percentY=y/(oShow.offsetHeight-oSpan.offsetHeight);
            var oImgparent=oImg.parentNode;
            oImg.style.left=-percentX*(oImg.offsetWidth-oImgparent.offsetWidth)+'px';
            oImg.style.top=-percentY*(oImg.offsetHeight-oImgparent.offsetHeight)+'px';
        };
    };
    </script>
    </head>
    <body>
    <div id="div1">
        <img src="http://www.codesc.net/jscode/demoimg/201102/11_2_2.jpg" />
        <span></span>
        <div class="show"></div>
    </div>
    <div id="div2">
        <img id="img1" src="http://www.codesc.net/jscode/demoimg/201102/11_2_2.jpg" />
    </div>
    </body>
    </html>

    -----------------------------------------------------------------------------------------------------------------------------感谢观看!期待您的下次光临!

  • 相关阅读:
    转:Intellij idea创建javaWeb以及Servlet简单实现
    IntelliJ IDEA控制台启动Tomcat输出中文乱码问题
    Tomcat 输出日志出现中文乱码
    转:Java Web 项目发布到Tomcat中三种部署方法
    运行tomcat7w.exe提示指定的服务未安装 解决办法
    (转)ASP.NET MVC:Razor 引入命名空间
    (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
    svn移动目录时如何保留原来的日志
    Memcached 教程
    最近帮朋友写了一个百度竞价关键词快速分词(分组)工具,支持与或逻辑分组,附源码和工具下载链接
  • 原文地址:https://www.cnblogs.com/varchar-pig/p/14224281.html
Copyright © 2011-2022 走看看