热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

商品放大镜

商品放大镜*{margin
商品放大镜

在这里插入图片描述

<!DOCTYPE html>
<html>
<head lang&#61;"en"><meta charset&#61;"UTF-8"><title></title><style>* {margin: 0;padding: 0;}.box {width: 350px;height: 350px;margin: 100px;border: 1px solid #ccc;position: relative;}.big {width: 400px;height: 400px;position: absolute;top: 0;left: 360px;border: 1px solid #ccc;overflow: hidden;display: none;}.mask {width: 175px;height: 175px;background: rgba(255, 255, 0, 0.4);position: absolute;top: 0px;left: 0px;cursor: move;display: none;}.small {position: relative;}</style>
</head>
<body>
<div class&#61;"box" id&#61;"box"><div class&#61;"small"><!--小层--><img src&#61;"images/small.png" width&#61;"350" alt&#61;""/><div class&#61;"mask"></div><!--遮挡层--></div><!--小图--><div class&#61;"big"><!--大层--><img src&#61;"images/big.jpg" width&#61;"800" alt&#61;""/><!--大图--></div><!--大图-->
</div>
<!--导入外部的js文件-->
<script>//获取需要的元素var box &#61; document.getElementById("box");//获取小图的divvar small &#61; box.children[0];//遮挡层var mask &#61; small.children[1];//获取大图的divvar big &#61; box.children[1];//获取大图var bigImg &#61; big.children[0];//鼠标进入显示遮挡层和大图的divbox.onmouseover &#61; function () {mask.style.display &#61; "block";big.style.display &#61; "block";};//鼠标离开隐藏遮挡层和大图的divbox.onmouseout &#61; function () {mask.style.display &#61; "none";big.style.display &#61; "none";};//鼠标的移动事件---鼠标是在小层上移动small.onmousemove &#61; function (e) {//鼠标此时的可视区域的横坐标和纵坐标//主要是设置鼠标在遮挡层的中间显示var x &#61; e.clientX - mask.offsetWidth / 2;var y &#61; e.clientY - mask.offsetHeight / 2;//主要是margin的100px的问题x &#61; x - 100;y &#61; y - 100;//横坐标的最小值x &#61; x < 0 ? 0 : x;//纵坐标的最小值y &#61; y < 0 ? 0 : y;//横坐标的最大值x &#61; x > small.offsetWidth - mask.offsetWidth ? small.offsetWidth - mask.offsetWidth : x;//纵坐标的最大值y &#61; y > small.offsetHeight - mask.offsetHeight ? small.offsetHeight - mask.offsetHeight : y;//为遮挡层的left和top赋值mask.style.left &#61; x &#43; "px";mask.style.top &#61; y &#43; "px";//遮挡层的移动距离/大图的移动距离&#61;遮挡层的最大移动距离/大图的最大移动距离//大图的移动距离&#61;遮挡层的移动距离*大图的最大移动距离/遮挡层的最大移动距离//大图的横向的最大移动距离var maxX &#61; bigImg.offsetWidth - big.offsetWidth;//大图的纵向的最大移动距离//var maxY &#61; bigImg.offsetHeight - big.offsetHeight;//大图的横向移动的坐标var bigImgMoveX &#61; x * maxX / (small.offsetWidth - mask.offsetWidth);//大图的纵向移动的坐标var bigImgMoveY &#61; y * maxX / (small.offsetWidth - mask.offsetWidth);//设置图片移动bigImg.style.marginLeft &#61; -bigImgMoveX &#43; "px";bigImg.style.marginTop &#61; -bigImgMoveY &#43; "px";};
</script></body>
</html>


推荐阅读
author-avatar
菜鸟自学编程
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有