利用JS实现购物网站商品放大镜效果

大家几乎都有在网上购物的经验,有的网站会有一个商品放大镜功能,

就是把鼠标移到图片上的时候,旁边会有另外一张大的图片展示,等同于

放大镜效果,那这样的效果怎样实现的呢,我把代码发给大家,请大家参考。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>放大镜</title>
    <style>
    *{margin:0;padding: 0;}
    #warp{width: 1184px;height:500px;margin:50px auto 0;background-color: #ccc;overflow: hidden;padding: 10px;position: relative;}
    #warp #minbox{width: 350px;height: 350px;float: left;position: relative;}
    #maxbox{width: 400px;height: 400px;position: absolute;left: 380px;overflow: hidden;display: none;}
    #maxbox img{width: 800px;height: 800px;position: absolute;}
    #con{float: left;margin-left: 20px;}
    #meng{width: 175px;height: 175px;position: absolute;background-color:yellow;opacity:0.4;filter:alpha(opacity=40);left: 0;top: 0;display: none;}
    </style>
</head>
<body>
    <div id="warp">
        <div id="minbox">
            <img src="images/min.jpg" alt="">
            <p id="meng"></p>
        </div>
        <div id="maxbox">
            <img src="images/max.jpg" alt="">
        </div>
        <div id="con">
            <img src="images/msg.png" alt="">
        </div>
    </div>
    <script>
        var minbox=document.getElementById(‘minbox‘);
        var meng=document.getElementById(‘meng‘);
        var maxbox=document.getElementById(‘maxbox‘);
        var maximg=maxbox.getElementsByTagName(‘img‘)[0];
        var minimg=minbox.getElementsByTagName(‘img‘)[0];
        function offsetTL(obj){
            var ofL=0,ofT=0;
            while(obj){
                ofL+=obj.offsetLeft+obj.clientLeft;
                ofT+=obj.offsetTop+obj.clientTop;
                obj=obj.offsetParent;
            }
            return{left:ofL,top:ofT};
        }
        minbox.onmousemove=function(e){
            var e=e||window.event;
            meng.style.display=‘block‘;
            maxbox.style.display=‘block‘;
            var niubi1=e.clientX-offsetTL(minbox).left-meng.clientWidth/2;//蒙板的X坐标
            var niubi2=e.clientY-offsetTL(minbox).top-meng.clientHeight/2;//蒙板的Y坐标
            var bili=maximg.clientWidth/minimg.clientWidth;
            if (niubi1<=0) {
                niubi1=0;
            }else if (niubi1>=minbox.clientWidth-meng.clientWidth) {
                niubi1=minbox.clientWidth-meng.clientWidth;
            }
            if (niubi2<=0) {
                niubi2=0;
            }else if (niubi2>=minbox.clientHeight-meng.clientHeight) {
                niubi2=minbox.clientHeight-meng.clientHeight;
            }
            console.log(niubi1);
            console.log(niubi2);
            meng.style.left=niubi1+‘px‘;
            meng.style.top=niubi2+‘px‘;
            maximg.style.left=-parseInt(meng.style.left)*bili+‘px‘;
            maximg.style.top=-parseInt(meng.style.top)*bili+‘px‘;
        }
        minbox.onmouseout=function(){
            meng.style.display=‘none‘;
            maxbox.style.display=‘none‘;
        }
    </script>
</body>
</html>
时间: 2024-10-13 22:09:33

利用JS实现购物网站商品放大镜效果的相关文章

css3购物网站商品文字提示实例

css3购物网站商品文字提示实例先来看效果图:<ignore_js_op> 当鼠标划过图片时,有着泰迪熊黑色长方形的背景就会出现.来看HTML5+CSS3代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>购物网站商品文字提示</title> <style type="te

js购物时的放大镜效果

首先需要两张一样的图片,一张大图,一张小图,大图显示,当鼠标移入时,小图上出现一个滑块,可以滑动,大图也跟着显示,大图的显示区域和小图一样,当滑块滑到不同的位置,大图显示不同的区域,当鼠标移出时,滑块和大图都隐藏. <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>放大镜</title> <style

利用JS实现简单的瀑布流效果

哈哈, 我又来啦, 在这一段时间里, 我简单的学习了一下javascript(JS), 虽然不是很懂啦, 但是我也简单的尝试着做了点小东西, 就比如现在流行的瀑布流效果, 经过我的努力终于成功的完成了, 虽然中间非常的坎坷, 并不是一帆风顺但是最终我还是实现了个简单的效果, 下面就为大家简单的介绍下, 不知道的友友们, 有兴趣的话, 可以来参考下, 欢迎指出缺点和不足! 一.瀑布流之准备工作   首先声明下, 为了方便演示和联系, 我使用的是本地图片, 如果大家有需要的话可以尝试着写下网络的,

利用js键盘事件制作会移动效果

会移动的方块 描述 按键盘上的方向键方块会移动,按住alt键和方向键进行大幅度移动 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>会移动的方块(按方向键或alt加方向键)</title> <style> * {margin: 0;padding: 0;} div {width: 200px;

商品放大镜效果

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding:0px;margin:0px; } .smallpic{ width: 450px; height: 450px; border: 1px solid #ccc; positio

jQuery 浮动导航菜单(购物网站商品类型)

单页面网页内容较多,页面长度较大,需要方便快速的在页面的不同位置进行定位,所以浮动菜单逐渐流行了起来,如下图 男装.女装.美妆等. 这种菜单功能分为两部分: 1.点击菜单项,网页滚动到对应位置,可简单通过锚点实现: 2.滚动页面的时候,菜单项的选中状态要跟着改变,这就需要监听网页的滚动事件并通过一点计算来实现了: 计算 scrollTop 和 各个 div 的 offsetTop 的大小关系,判断现在网页显示的位置在什么地方,再根据计算的结果给对应的菜单项添加样式.比如第二个 div 的 off

利用jqueryzoom实现图片放大镜效果

在你的页面中包含 jqzoom.css Html代码   <link rel="stylesheet" href="your_path/jqzoom.css" type="text/css" media="screen"> 包含 jQzoom 和 jQuery JS 代码: Html代码   <script type="text/javascript" src="your_pat

网站图片的放大镜效果

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 5 <head> 6 7 <meta http-equiv=

原生js实现放大镜效果

放大镜效果主要涉及3个鼠标事件: 1.onmouseover,鼠标移入浮动小方块和显示放大的区域显示: 2.onmousemove,鼠标移动,小方块和放大区域一起移动: 3.onmouseout,鼠标移除小方块和放大区域消失. 其实放大镜效果最主要的是小方块与放大区域的比例及位置: <div id="small_box"> <div class="small_Pic"> <div id="float_box">