zoukankan      html  css  js  c++  java
  • js版面向对象图片放大镜

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>放大镜特效</title>
    </head>
    <style type="text/css">
    *{
    margin: 0;
    padding: 0;
    }
    #main{
    position: relative;
    }
    #main2{
    position: relative;
    }
    .smallimg{
    300px;
    height: 300px;
    position: absolute;
    top: 50px;
    left: 50px;
    }
    .mark{
    100px;
    height:100px;
    position: absolute;
    z-index: 100;
    top: 0;
    background:rgba(0,0,0,.6);
    display: none;
    cursor: move;
    }
    .bigimg{
    position: absolute;
    top:50px;
    left:400px;
    300px;
    height: 300px;
    overflow: hidden;
    display: none;
    }
    .img1{
    300px;
    height:300px;
    display: block;
    }
    .img2{
    900px;
    height: 900px;
    display: block;
    }
    </style>
    <body>
    <div id="main">
    <div class="smallimg">
    <img src="img/1.jpg" class="img1"/>
    <div class="mark">

    </div>
    </div>
    <div class="bigimg">
    <img src="img/1.jpg" class="img2"/>
    </div>
    </div>
    <!--<div id="main2">
    <div class="smallimg">
    <img src="img/2.jpg" class="img1"/>
    <div class="mark">

    </div>
    </div>
    <div class="bigimg">
    <img src="img/2.jpg" class="img2"/>
    </div>
    </div>-->
    </body>
    <script type="text/javascript">
    function Show(id){
    if(!document.getElementsByClassName){
    document.getElementsByClassName = function(className, element){
    var children = (element || document).getElementsByTagName('*');
    var elements = new Array();
    for (var i=0; i<children.length; i++){
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j=0; j<classNames.length; j++){
    if (classNames[j] == className){
    elements.push(child);
    break;
    }
    }
    }
    return elements;
    };
    }

    var _this=this;
    var main=document.getElementById(id);
    this.smallimg=main.getElementsByClassName('smallimg')[0];
    this.bigimg=main.getElementsByClassName('bigimg')[0];
    this.mark=main.getElementsByClassName('mark')[0];
    this.img2=main.getElementsByClassName("img2")[0];
    this.smallimg.onmouseover=function(event){
    _this.over(event);
    }
    this.smallimg.onmousemove=function(event){
    _this.move(event);
    }
    this.smallimg.onmouseout=function(event){
    _this.out(event);
    }
    }
    Show.prototype.over=function(event){
    var _this=this;
    this.bigimg.style.display="block";
    this.mark.style.display="block";
    _this.show(event);
    }
    Show.prototype.move=function(event){
    var _this=this;
    this.bigimg.style.display="block";
    this.mark.style.display="block";
    _this.show(event);
    }
    Show.prototype.out=function(event){
    this.bigimg.style.display="none";
    this.mark.style.display="none";
    }
    Show.prototype.show=function(event){
    var e=e||window.event;
    this.L=e.clientX-this.smallimg.offsetLeft-this.mark.offsetWidth/2;
    this.T=e.clientY-this.smallimg.offsetTop-this.mark.offsetHeight/2;
    this.minL=0;
    this.minT=0;
    this.maxL=this.smallimg.offsetWidth-this.mark.offsetWidth;
    this.maxT=this.smallimg.offsetHeight-this.mark.offsetHeight;
    if(this.L<this.minL){
    this.L=0;
    }else if(this.L>this.maxL){
    this.L=this.maxL;
    }
    if(this.T<this.minT){
    this.T=0;
    }else if(this.T>this.maxT){
    this.T=this.maxT;
    }
    this.mark.style.left=this.L+'px';
    this.mark.style.top=this.T+'px';
    this.img2.style.marginLeft=this.L*-3+'px';
    this.img2.style.marginTop=this.T*-3+'px';
    }
    //实现继承
    /*function Show2(id){
    Show.call(this,id);
    }
    for(var i in Show.prototype){
    Show2.prototype[i]=Show.prototype[i];
    }*/
    window.onload=function(){
    var show=new Show('main');
    //var show2=new Show2('main2');
    }
    </script>
    </html>

  • 相关阅读:
    Linux学习笔记(二)
    Linux学习笔记(三)
    C++学习笔记一
    汇编总结
    Linux学习笔记(一)
    编辑距离算法
    Linux学习笔记(四)
    Linux学习笔记五
    extjs model的dirty属性能够查询store中某一个行是否改变过
    Ext.grid.Panel一定要有renderTo或autoRender属性,不然页面为空
  • 原文地址:https://www.cnblogs.com/luoguixin/p/6248875.html
Copyright © 2011-2022 走看看