当前位置:首页 > 日记 > 正文

js写的一个简单的产品放大效果代码

js写的一个简单的产品放大效果代码
购物网站的产品页面通常有一个产品展示区域,地图区域有一个功能,它是产品地图的放大功能,在左边移动焦点区域,可以详细地放大,细节如下,实现这个功能的方法也很简单。

实验:制作产品的重点。
所需技能:

1,获取页面元素的基本方法;

2,一些简单的事件;

3,您将使用DOM来设置元素的属性;

判例原则:

1,焦点框跟随鼠标事件;

2。聚焦框运动区域的调节;

三.大箱子的内容展示;

适合对象:js初学者
-------------------------------------------------------------------开始!-------------------------------------------------------------

首先,我们首先准备CSS样式,CSS样式中需要注意的几个点是:

(1)焦点图是相对定位,默认显示:无;

(2)右侧显示大图的框是默认显示:无;大框中的内容应隐藏溢出:隐藏在溢出框之后。
两。开始编写脚本代码:

(1)首先获取页面元素:

元素的第一个操作可能是 /
函数getID(标签){ / /定义与ID的方法访问元素,减少了很多工作!
返回document.getelementbyid(标签)
}
VaR箱= getID(盒子);
VaR小= getID(小);
VaR的面具= getID(面具);
无功大= getID(大);
var =大.子{ 0 };这里是通过元素节点的方法
(2)很明显,鼠标上会出现两个移动到小图的事件:1)焦点框会出来;2)大画面应该显示出来,鼠标在两天后删除。
将鼠标移动到图片效果
小。onmouseover =函数(){
掩码。样式;
大样式;
}
小。onmouseout=函数(){
掩码样式;
大样式。
}

(3)设置焦点框的以下内容:

1)当焦点框定在任何时候,我们下面的时间是实际发生的,所以这里的事件类型是不是鼠标是鼠标移动时;

2)本代码涉及的问题主要是掩码(焦帧)的位置计算问题。这是容易被忽视的问题,面膜是相对于其位置移动。在我的CSS样式,面具是放在小盒子里,所以相对运动的位置必须是父元素,位置小,已定位,坐标位置,我从ClientX和clienty相对于浏览器窗口不能直接使用,所以我们必须推断的母盒边缘值的影响。

设置小图的焦点,跟随鼠标;
小。移动鼠标=功能(e){
无功marginl = box.offsetleft; / /使用offsetleft方法获取框边离开
无功margint = box.offsettop; / /使用offsettop方法获取框边上
无功currentx = e.clientx;
VaR一般= e.clienty; / / e.clientx和e.clinety相对于浏览器的左上角
var x = currentx marginl面具。offsetwidth / 2;
var y =一般margint面具。offsetheight / / / 2;中心线使鼠标焦点框,还需要半减焦点框的宽度和高度
/ ----------------------这里同时插入其他代码 / / ---------------------------
掩码。样式;
掩码。样式。顶部=;改变该框的焦点位置。
(4)空闲焦点盒位置的移动

1)在最后一个阶段完成后,焦点帧的移动不是空闲的。在购物网站中,我们可以感觉到焦点框不允许小地图的外部造成坏的用户体验。

2)限制焦点帧的移动,主要是x,y的变化超过允许值时,给它一个固定值。
设置小图的焦点,跟随鼠标;
小。移动鼠标=功能(e){
无功marginl = box.offsetleft;
无功margint = box.offsettop;
无功currentx = e.clientx;
目前e.clienty var =;
var x = currentx marginl面具。offsetwidth / 2;
var y =一般margint面具。offsetheight / 2;

将移动区域设置为焦点框
如果(x<0)x=0;}
如果(x >小。offsetwidth面具。offsetwidth)
{ x =小。offsetwidth面具。offsetwidth }; / / X的定位最小值是0,最大长度为Y轴的长度小面膜
如果(y<0){ = 0;}
如果(y >小。offsetheight面具。offsetheight)
{ y =小。offsetheight面具。offsetheight };
掩码样式。左= X+;在移动区域中写掩码需要移动区域之后,请注意执行代码的顺序。
掩码。样式;

(5)设置大画面的显示。

1)要实现画面在大盒子中的运动,就要考虑到边值问题。

2)移动的距离可以使用固定比例乘以掩码的左和顶值。想想焦点区域左上角的位置和大图片框左上角的位置是一样的!!!这不是很难理解。
在显示设置中的大框内容
无功relativex = mask.offsetleft;
无功relativey = mask.offsettop;
无功proporationx =照片。offsetwidth / / / small.offsetwidth;规模
无功proporationy =照片。offsetheight / small.offsetwidth;
PIC。风格。marginleft = - relativex * proporationx +PX; / /注!边界值必须是负值,而PX不应该丢失。
PIC。风格。margintop = - relativey * proporationy +PX;
我们的演示是通过这个步骤完成的!这很简单吗

这里我将粘贴整个代码,希望能与大家讨论交流。
下面是CSS代码
{ *
保证金:0;
填充:0;
}

{ #盒
保证金:50px;

}

{ #小
宽度:229px;
身高:250px;
border: 1px solid黑;
文本对齐:中心;
职位:相对;
浮点数:左;
}

{ #面具
宽度:100px;
身高:100px;
背景颜色:RGBA(214, 111, 193,0.3);
位置:绝对;
顶部:0;
左:0;
显示:*无;
}
{ #大
宽度:350px;
身高:350px;
border: 1px solid黑;
浮点数:左;
溢出:隐藏;
显示:*无;
}

这里是HTML

下面是js代码
元素的第一个操作可能是 /
函数getID(标签){
返回document.getelementbyid(标签)
}
VaR箱= getID(盒子);
VaR小= getID(小);
VaR的面具= getID(面具);
无功大= getID(大);
var =大。儿童{ 0 };
console.log(PIC);
将鼠标移动到图片效果
小。onmouseover =函数(){
掩码。样式;
大样式;
}
小。onmouseout=函数(){
掩码样式;
大样式。
}
设置小图的焦点,跟随鼠标;
小。移动鼠标=功能(e){
无功marginl = box.offsetleft;
无功margint = box.offsettop;
无功currentx = e.clientx;
目前e.clienty var =;
var x = currentx marginl面具。offsetwidth / 2;
var y =一般margint面具。offsetheight / 2;

将移动区域设置为焦点框
如果(x<0)x=0;}
如果(x >小。offsetwidth面具。offsetwidth){ x =小。offsetwidth面具。offsetwidth };
如果(y<0){ = 0;}
如果(y >小。offsetheight面具。offsetheight){ y =小。offsetheight面具。offsetheight };
掩码。样式;
掩码。样式;
在显示设置中的大框内容
无功relativex = mask.offsetleft;
无功relativey = mask.offsettop;
无功proporationx =照片。offsetwidth / small.offsetwidth;
无功proporationy =照片。offsetheight / small.offsetwidth;
PIC。风格。marginleft = - relativex * proporationx +PX;
PIC。风格。margintop = - relativey * proporationy +PX;
}

以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。

相关文章

批处理SQL文件的mysql方法

批处理SQL文件的mysql方法

文件,方法,批处理,电脑软件,SQL,1。SQL文件要执行1.sql,2.sql,3.sql,4.sql,等。 2。写一batch.sql文件: 源1.sql; 2.sql源; 源3.sql; 源4.sql; 3、执行源/批下MySQL目录 / batch.sql文件; 以上是为您执行的MySQL批处理SQL文件的全部内容。我希望你…

excel文字数字快速开关输入

excel文字数字快速开关输入

数字,文字,输入,快速,电脑软件,在制作excel工作表时,通常都有数据和文本,这样在输入中反复使用输入法是很麻烦的,下面的技巧允许excel表自动切换输入法,避免切换的麻烦。 打开Excel表格,打开中文输入法,选中单元格区域,需要输入中文。单击数据菜…

QQ不能接收大文件的一部分

QQ不能接收大文件的一部分

大文件,电脑软件,QQ,问:最近我的QQ在接收文件时总有一些奇怪的问题。一些大文件可以正常接收,有些大文件无法接收。无法接收到的文件似乎是以发送者的形式在几秒钟内传输的。我该怎么办 答:你先检查一下QQ,设置在基本建立RARR;文件管理找到允许…

PS图象处理软件是一个令人印象深刻

PS图象处理软件是一个令人印象深刻

是一个,图象,处理软件,战士,深刻,本教程主要介绍背景制作和色彩调整,背景主要是滤镜效果,渲染战争感觉,色彩调制主要用于梯度贴图。用这种方法很好。可以使用一个简单的步骤。 最终效果 1、新。恢复默认的黑色和白色的D键,执行渲染;滤波器mdash…

photoshopcs6定制设计的入门教程

photoshopcs6定制设计的入门教程

入门教程,电脑软件,有时候PS没有我们想要的,所以我们需要自己去做。这里的萧边,告诉你photoshopcs6自定义模式,共同学习。 photoshopcs6自定义图案的方法: 图中所示的图案。 选择魔术棒工具,选择除图以外的部分,如图所示。 然后在图中右键单击…

MySQL决定了汉字、日期和数字的特

MySQL决定了汉字、日期和数字的特

数字,日期,汉字,功能,决定了,几个常用的mysql函数,mysql判断汉字的具体功能,日期和数字,是共享的。具体内容如下 1。判断字符串是否为汉字的返回值:1 -汉字0 -不是汉字。 如果存在fc_is_hanzi功能下降; 创建功能fc_is_hanzi( p_str varchar(1024…

WPS表如何改变网格线颜色WPS表教程

WPS表如何改变网格线颜色WPS表教程

教程,网格,颜色,电脑软件,WPS,当我们想修改WPS表中网格线的颜色时,我们该怎么做呢让我们告诉你如何在WPS表中改变网格线的颜色。 WPS表更改网格线的颜色: 1。打开我们的WPS表,我们可以看到软件默认的网格线,如下所示。 2、将鼠标切换到工作表…

检索PowerPoint2013的Flash嵌入功

检索PowerPoint2013的Flash嵌入功

检索,功能,电脑软件,Flash,请确认开发工具;选项卡是否已包含在功能选项卡中,如果未找到,请打开PowerPoint选项对话框,切换到自定义;功能区;右侧面板上的复选框的主选项卡;开发工具选项卡。确认生效后,滑入Flash动画,你可以切换到开发工具;;;控制选项卡,…

十字交叉位置的水平垂直中心

十字交叉位置的水平垂直中心

位置,中心,电脑软件,在本文中,我们分享了CSS定位的横;实施水平垂直中心效应,具体内容如下 1。先看效果达到 实际效果图 我可以看到,我的实现首先使用父级div来定位水平垂直中心,然后父级div定位两个交叉点的div。 见实现代码: xml代码将内容复…

对写作方法的分析,在window.onload()$

对写作方法的分析,在window.onload()$

方法,电脑软件,onload,window,document,首先,发现问题: 最近公司有一批微信公共项目,以促进纤维环直接使用js +离子的发展,这是用来在DOM图Echarts ECharts,结合节点的具体发展的初始化过程中发现的图,表明节点是违法的;但它是代码写的在在window…

预先标记的CSS代码,以防止代码在代

预先标记的CSS代码,以防止代码在代

代码,标记,以防止,电脑软件,CSS,标记前的CSS代码防止代码预处理中的代码问题。需要帮助的朋友可以看到它。有时,当我们使用前置代码时,我们可以参考下面的代码编写过长的代码。 CSS代码将内容复制到剪贴板。 {预 朵朵空间:预包装CSS-3; / * * /…

javascript代码实现循环滚动效果

javascript代码实现循环滚动效果

代码实现,滚动效果,循环,电脑软件,javascript,1。概述 循环滚动图片不仅增加了网页的动态效果,而且节省了页面空间,有效地保证了有限页面中的更多图片。 2。技术要点 setTimeout()方法来实现图片的循环滚动效果,setTimeout()方法的语法格式如下: …