介绍
本篇文章给大家分享的是有关使用JavaScript怎么编写一个商品点击放大功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
html部分:
& lt; div 类=癰ox"比;
& lt;才能div 类=皊mall"比;
,,& lt; img  src=https://www.yisu.com/zixun/薄?图片/s.jpg”alt=" ">
css部分:
& lt; style>
*,{才能
,,,保证金:0;
,,,填充:0;
,,}
,,
.box {才能
,,,宽度:450 px;
,,,身高:450 px;
,,,边界:1 px solid # aaa级;
,,,位置:相对;
,,:,100 px;
,,,左:100 px;
,,}
,,
.small {才能
,,,宽度:450 px;
,,,身高:450 px;
,,,位置:绝对;
,,}
,,
.mask {才能
,,,位置:绝对;
,,,背景颜色:rgba (255,, 255,, 0,,。3);
,,/*,边界:,1 px solid # ff0; */,,,宽度:225 px;
,,,身高:225 px;
,,,:0;
,,,左:0;
,,,显示:没有;
,,}
,,
.big {才能
,,,宽度:450 px;
,,,身高:450 px;
,,,边界:1 px solid # aaa级;
,,,位置:绝对;
,,,左:500 px;
,,,:0;
,,,溢出:隐藏;
,,,显示:没有;
,,}
,,
.big>才能;img  {
,,,宽度:900 px;
,,,身高:900 px;
,,,位置:绝对;
,,}
& lt;/style>
js部分:
//一步一步来,不慌//首,先来个onload事件,等待页面加载完在执行,=,window.onload 函数(),{//才能获取DOM一波,用到什么拿什么
var 才能;small =, document.querySelector (“.small");
var 才能;box =, document.querySelector (“.box");
var 才能;big =, document.querySelector (“.big");
var 才能;mask =, document.querySelector (“.mask");
var 才能;bigimg =, document.querySelector (“.big img");//才能,第一部分,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -开始//才能分析一下,我们第一步要做的事情就是鼠标移入,移除的操作//在才能分析鼠标移入会怎么样子呢?//才能鼠标移入会有黄色透明框框的显示,以及大图的显示
small.onmouseover 才能=,()函数,{
,,big.style.display =,“block";
,,mask.style.display =,“block";
,,};//在才能分析鼠标移出会怎么样子呢?//才能鼠标移入会有黄色透明框框的隐藏,以及大图的隐藏
small.onmouseout 才能=,()函数,{
,,big.style.display =,“none";
,,mask.style.display =,“none";
,,};//才能,第一部分,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -结束//才能,第二部分,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -开始//我才能们需要将鼠标在黄色的透明框的中间显示
时间=small.onmousemove 才能;函数(e), {
,,,var x =, e.pageX 作用;box.offsetLeft 作用;mask.offsetWidth /, 2;
,,,var y =, e.pageY 作用;box.offsetTop 作用;mask.offsetHeight /, 2;
,,,console.log (x, y);
,,,//获取,左面小图的马克斯值
,,,var max_x =, small.clientWidth 作用;mask.offsetWidth;
,,,var max_y =, small.clientHeight 作用;mask.offsetHeight;
,,,//获取,右面大图的马克斯值
,,,var MAX_X =, bigimg.offsetWidth 作用;big.clientWidth;
,,,var MAX_Y =, bigimg.offsetHeight 作用;big.clientHeight;
,,,//设置这个黄色的框框在这个盒子里面的最大移动区域
,,,//左面/上面,设置
,,,if (x & lt;, 0), {
,,,,x =, 0;
,,,}
,,,if (y & lt;, 0), {
,,,,y =, 0;
,,,}
,,,//右面/下面,设置
,,,if (x 祝辞,max_x), {
,,,,x =, max_x;
,,,}
,,,if (y 祝辞,max_y), {
,,,,y =, max_y;
,,,}
,,,mask.style.left =,“$ {x} px”;
null
null
null
null
null
null
null
null
null
null
null
null
null