Javascript:实操---放大镜效果

CSS部分
<style type="text/css">
/* body{
    padding: 10px;
} */
#minWrap{
    width: 350px;
    height: 350px;
    border: 1px solid #ccc;
    position: relative;
}    
#slider{
    height: 175px;
    width: 175px;
    background-color: yellow;
    opacity: 0.3;
    position: absolute;
    left: 0;
    top: 0;
    display: none;
}
#maxWrap{
    display: none;
    position: absolute;
    left: 370px;
    width: 400px;
    height: 400px;
    border: 1px solid #ccc;
    overflow: hidden;
    top: 8px;
}
#maxWrap img{
    position: absolute;
}
</style>

JS部分
<script type="text/javascript">
window.onload=function (){

var minWrap=document.getElementById("minWrap");
    var oSlider=document.getElementById("slider");
    var maxWrap=document.getElementById("maxWrap");
    var maxImg=maxWrap.children[0];

minWrap.onmousemove=function (ev){

oSlider.style.display="block";
        maxWrap.style.display="block";

var oEvent=ev||window.event;

var x=oEvent.clientX-oSlider.offsetWidth/2-minWrap.offsetLeft;
        var y=oEvent.clientY-oSlider.offsetHeight/2-minWrap.offsetTop;

if (x>=minWrap.clientWidth-oSlider.offsetWidth){
            x=minWrap.clientWidth-oSlider.offsetWidth;
        }
        else if (x<=0){
            x=0;
        }

if (y>=minWrap.clientHeight-oSlider.offsetHeight){
            y=minWrap.clientHeight-oSlider.offsetHeight;
        }
        else if (y<=0){
            y=0;
        }

oSlider.style.left=x+"px";
        oSlider.style.top=y+"px";

var scale=maxWrap.clientWidth/oSlider.offsetWidth;

maxImg.style.left=-scale*x+"px";
        maxImg.style.top=-scale*y+"px";
    }
    minWrap.onmouseout=function (){

oSlider.style.display="none";
        maxWrap.style.display="none";
    }
}    
</script>
HTML部分

<div id="minWrap">
    <img src="min.jpg" >
    <div id="slider"></div>
</div>
<div id="maxWrap">
    <img src="max.jpg" >
</div>

Javascript:实操---放大镜效果

时间: 2025-01-17 08:41:44

Javascript:实操---放大镜效果的相关文章

Javascript:实操---放大镜效果(2)

CSS部分<style type="text/css">/* body{    padding: 10px;} */#minWrap{    width: 350px;    height: 350px;    border: 1px solid #ccc;    position: relative;}    #slider{    height: 175px;    width: 175px;    background-color: yellow;    opacit

javascript html 鼠标放大镜效果

1.鼠标放大镜效果 鼠标放大镜效果,将鼠标移入到左图片,则可以在其右边看到放大的图片,且鼠标移动滑块的大小即为右图显示图片.实际效果如下图所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> #little_image { width: 400px

JavaScript之放大镜效果

在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现放大效果: 这个放大效果引用了MagicZoom.css

Javascript:实操---自定义滚动条

CSS部分 <style type="text/css">*{    margin: 0;    padding: 0;}#wrap{    width: 300px;    height: 400px;    overflow: hidden;    position: relative;    border: 1px solid #ccc;    margin: 100px;}    #content{    position: absolute;    font-si

Javascript:实操---右键显示列表

JS部分 <script type="text/javascript"> window.onload=function(){ var oUl1=document.getElementById("ul1"); var oLi1=oUl1.children; var bodyWidth=document.documentElement.clientWidth||document.body.clientWidth; var bodyHeight=documen

Javascript:实操---拖拽(完整版)

CSS部分 <style type="text/css">body{height: 3000px;    width: 3000px;}#div1{    height: 100px;    width: 100px;    background-color: #ccc;    position: absolute;}</style> HTML部分 <div id="div1">DFDSF</div>我发的思考附近的刷

JavaScript之放大镜效果2

在放大图片效果的同时,我们怎么原图和放大窗体增加间隔呢? 我们只需应用一个table就行了: 源码上: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" con

Javascript:实操---类似京东图片点击切换

CSS部分 <style>*{ margin:0; padding:0;}#div1{ width:670px; height:150px; margin:20px auto; position:relative; overflow:hidden;}.out{ width:5000px; height:150px; overflow:hidden; position:absolute;}.out ul{ height:150px; list-style:none; position:absol

Javascript:实操---导航条滚动

CSS部分 <style>*{ margin:0; padding:0;}.out{ position:absolute;}.tabs{ width:300px; height:100px; margin-top:20px; position:absolute;}.slider{ height:7px; width:79px; border-bottom:2px solid #E4393C; text-align:center; overflow:hidden; position:absolu