十.放大镜效果的demo

详情页放大镜效果收录

Javascript
window.onload = function(){
    var oDiv = document.getElementById('div1');
    var mark = oDiv.getElementsByTagName('span')[0];
    
    var oDiv2 = document.getElementById('div2');
    var img2 = oDiv2.getElementsByTagName('img')[0];
    
    oDiv.onmouseout = function(){
        mark.style.display = 'none';
    };
    
    oDiv.onmousemove = function(ev){
        mark.style.display = 'block';
        var ev = ev || window.event;
        
        var L = ev.clientX - oDiv.offsetLeft - mark.offsetWidth/2;
        var T = ev.clientY - oDiv.offsetTop - mark.offsetHeight/2;
        
        if(L<0){
            L = 0;
        }
        else if(L>oDiv.offsetWidth - mark.offsetWidth){
            L = oDiv.offsetWidth - mark.offsetWidth;
        }
        
        if(T<0){
            T = 0;
        }
        else if(T>oDiv.offsetHeight - mark.offsetHeight){
            T = oDiv.offsetHeight - mark.offsetHeight;
        }
        
        mark.style.left = L + 'px';
        mark.style.top = T + 'px';
        
        var scaleX = L/(oDiv.offsetWidth - mark.offsetWidth);
        var scaleY = T/(oDiv.offsetHeight - mark.offsetHeight);
        
        img2.style.left = - scaleX * (img2.offsetWidth - oDiv2.offsetWidth) + 'px';
        img2.style.top = - scaleY * (img2.offsetHeight - oDiv2.offsetHeight) + 'px';        
        
    };
    
};
HTML
<div id="div1">
    ![](small.jpg)
    <span class="mark"></span>
</div>
<div id="div2">
    ![](big.jpg)
</div>
CSS
#div1{ width:180px; height:180px; overflow:hidden; position:relative;top:100px;left:50px;}
#div1 .mark{ width:100px; height:100px; background:yellow; opacity:0.5; filter:alpha(opacity=50); position:absolute; left:0; top:0; display:none;}
#div1 img{width:100%;}
#div2{ width:500px; height:500px; position:absolute; left:250px; top:100px; overflow:hidden;}
#div2 img{ position:absolute; left:0; top:0;width:900px;height:900px;}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,615评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,296评论 4 61
  • #import "ViewController.h" @interface ViewController () /...
    我也曾风流倜傥英气逼人阅读 352评论 0 0
  • 十分钟,十分钟内有人出现,她就要问“嘿,有空吗?喝个酒。” 有点紧张,小全有点站立不安。如果出现一个老男人怎么办?...
    李西柚李阅读 246评论 0 0
  • 每一个人都是特别的,我们一直在努力提升自己,让自己变得更优秀。我们的改变不是围绕他人,而是随心。 昨晚深夜,遇到小...
    静姝JingShu阅读 516评论 2 1