js放大镜特效

原理分析:当鼠标在小图片上移动时,通过捕捉鼠标在小图片上的位置,定位大图片的相应位置。(同时,当鼠标在小图片上移动时,右侧大图片往相反的方向移动。)

放大镜特效设计:

①页面元素:小图片,大图片以及盛放图片的容器

②事件捕获:onmouseover(当鼠标指针移动到指定对象上时发生)、onmouseout(当鼠标指针移除指定对象时发生)、onmousemove(当鼠标指针移动时发生)

③技术难点:offsetLeft(相对于父元素的左位移)、offsetTop (相对于父元素的顶部位移)

注:offsetLeft和style.left的区别:a. 后者返回字符串(10px),前者返回数值(10);

b. 后者是可读写的,前者是只读的。所以要改变元素的位置要用style.left;

c. style.left需要提前定义,否则取到的是空值;

d. offestLeft只针对html中设置的值有效,在css中设置的无法识别。

offsetWidth/offsetHeight 元素所展现出的宽高

event.clientX/event.clientY 元素相对于页面的横纵坐标

制作放大镜特效所需的计算

重点:如何让小图片上的放大镜和大图片同时移动。

公式:小img宽/大img宽 = 放大镜宽/大图片可视区域宽 = 小图片左移/大图片右移

其中,小img宽和大img宽已知,放大镜宽和可视区域宽已知,通过鼠标左移可以求得大图片右移,确定大图片位置。

开发放大镜特效:

小图片左位移/(大img宽-小img宽) = ?/(可视区域宽 - 放大镜宽)

兼容性问题:

因为在IE浏览器中,容易中放入图片或者span等的时候,但是当鼠标移入图片时,会被认为是已经移除了容器,而接下来紧接着又触发了onmouseover事件,因此造成了放大镜特效的反复闪烁。

解决: 在原有的图片上覆盖一层背景色透为0的隔离层,之后将所有绑定在原先图片容器上的事件绑定到该隔离层。

原文地址:https://www.cnblogs.com/xiaoya625/p/9256352.html

时间: 2024-11-06 07:22:47

js放大镜特效的相关文章

JS 放大镜特效

放大镜特效 放大镜在商城网站经常会看到,作为前端,写这么一个肯定是小case,本人就献丑了.如果没有一点思路的同学,可以先学DOM事件里的事件位置.距离.宽高各种方法属性. 那么直接上代码,代码里各种注释相当完备: 栗子代码链接 <!doctype html> <title>放大镜</title> <meta charset="utf-8"> <style> *{ margin:0; padding:0; list-style

JS放大镜特效(兼容版)

原理 1.鼠标在小图片上移动时,通过捕获鼠标在小图片上的位置,定位大图片的相应位置 设计 1.页面元素:小图片.大图片.放大镜 2.技术点:事件捕获.定位 1)onmouseover:会在鼠标指针移动到指定的对象上时发生 2)onmouseout:会在鼠标指针移出指定的对象时发生 3)onmousemove:会在鼠标指针移动时发生 4)各边距表示 5)ofgsetLeft与style.left对比 style.left返回的是字符串,比如:30px,offsetLeft返回的是数值30 styl

Js图片放大镜特效源代码下载

Js图片放大镜特效源代码下载,通过面向对象实现 原文:Js图片放大镜特效源代码下载 源代码下载:http://www.zuidaima.com/share/1550463333878784.htm

JQuery插件-放大镜特效

一.HTML代码: <div class="demo"> <div id="box"> <div id="small-box"> <div id="float-box"></div> <img src="../images/bimg_big.jpg"/> </div> <div id="big-box&quo

15款商城网站常用的图片放大镜特效

jquery图片放大镜效果制作变焦镜头图片放大查看代码 jQuery图片放大镜插件鼠标悬停图片放大镜头显示代码 jQuery鼠标滑过图片放大镜效果_淘宝图片放大镜代码 jquery jqzoom仿京东商城商品详细页面图片放大镜_选项卡切换效果 原生js MagicZoom.js放大镜插件商城商品多图片放大镜效果展示 jquery.imagezoom图片放大镜插件仿淘宝店铺商品放大镜展示 jquery etalage图片放大镜插件鼠标移到小图片放大预览图片 jQuery图片放大窗口显示和图片组合缩

商品图片放大镜特效

商品图片放大镜特效 主要是基于鼠标捕获,计算放大镜移动距离原理而制成 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>放大镜</title> 6 <style> 7 * { 8 margin: 0; 9 padding: 0 10 } 11 12 #demo { 13 display: block; 14 wid

js网状特效源代码下载

原文:js网状特效源代码下载 源代码下载地址:http://www.zuidaima.com/share/1550463532010496.htm 適合自己的網站的開場

jQuery轻量级简单实用的图片放大镜特效

zoomtoo是一款轻量级的简单实用的jQuery图片放大镜特效插件.这个图片放大镜特效在鼠标滑过图片的时候,在原来图片区域内部将图片放大.鼠标进入和离开图片区域时都带有淡入淡出的效果. 浏览器兼容: Firefox 2+ (Win, Mac, Linux) IE7+ (Win) Chrome 6+ (Win, Mac, Linux, Android, iPhone) Safari 3.2+ (Win, Mac, iPhone) Opera 8+ (Win, Mac, Linux, Androi

js 时钟特效

时钟特效 CreateTime--2018年2月24日15:11:23 Author:Marydon 实现方式:都是基于HTML5的canvas标签实现的 款式一 借助jQuery插件实现 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta name="