【技巧】仿某宝网详情页宝贝放大镜效果

用原生js实现淘宝详情页图片放大镜效果 这个功能是我在模仿淘宝详情页的时候做出来的,最初版本对于非1:1比例的图片没有做处理,后续对程序进行了完善和逻辑上修改,形成了当前的程序。废话不多说,直接进入正题了,先上个效果图先放上这段功能的html代码<div id="full-pic">     <img src="img/full-pic-1.jpg" alt="">     <span id="pic-sp. 阅读详情

先来看效果吧:

这里写图片描述

HTML代码如下:


<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>放大镜效果练习</title>
    <link rel="stylesheet" type="text/css" href="css/index.css">
  <body>

    <div class="con-FangDa" id="fangdajing">
      <div class="con-fangDaIMg">
        <img src="/uploads/rs/304/hownr3so/bb.jpg"><!-- 正常现实的图片 -->
        <div class="magnifyingBegin"></div><!-- 滑块 -->
        <div class="magnifyingShow"><!-- 放大镜显示的图片 -->
          <img src="/uploads/rs/304/hownr3so/bb.jpg">
        </div>
      </div>

      <ul class="con-FangDa-ImgList"><!-- 图片显示列表 -->
        <li class="active"><img src="/uploads/rs/304/hownr3so/bb.jpg"></li>
        <li><img src="/uploads/rs/304/hownr3so/a.jpg"></li>
        <li><img src="/uploads/rs/304/hownr3so/bb.jpg"></li>
        <li><img src="/uploads/rs/304/hownr3so/a.jpg"></li>
        <li><img src="/uploads/rs/304/hownr3so/bb.jpg"></li>
      </ul>
    </div>  

        <script id="jquery_182" type="text/javascript" class="library" src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
    <script id="jqueryplugins7_jquery_colorbox_132" type="text/javascript" class="library" src="/js/sandbox/jquery-plugins/jquery.colorbox-min.js"></script>

  </body>
</html>

CSS代码如下:

*{
    margin: 0;
    padding: 0;
}

/*主容器*/
.con-FangDa{
    width: 300px;
    height: 550px;

    background-color: cyan;
}
/*正常容器*/
.con-fangDaIMg{
    width: 300px;
    height: 450px;
    position: relative;
    background-color: #454545;
}
.con-fangDaIMg > img{
    width: 100%;
    height:100%;
    display: block;
}
/*滑块*/
.magnifyingBegin{
    width: 100px;
    height: 100px;
    left: 0;
    top: 0;
    background-color: #454545;
    opacity: 0.5;
    position: absolute;
    cursor: move;
    display: none;
}
/*放大镜显示区域*/
.magnifyingShow{
    width: 300px;
    height: 300px;
    display: none;
    position: absolute;
    right: -300px;
    top: 0;
    overflow: hidden;
    background-color: #454545;
}
.magnifyingShow > img{
    width: 900px;
    height: 1350px;
    margin-left:0;
    margin-top: 0;
}
/*设置选择图片容器*/
.con-FangDa-ImgList{
    list-style: none;
}
.con-FangDa-ImgList > li{
    width: 50px;
    height: 50px;
    float: left;
    margin: 4px 0 0 4px;
    cursor: pointer;
    border: 2px solid #454545;
    background-color: #454545;
}
.con-FangDa-ImgList > li:first-child{
    margin-left: 0;
}
.con-FangDa-ImgList > li > img{
    width: 100%;
    height: 100%;
}
.con-FangDa-ImgList > .active{
    border-color: red;
}

JS代码如下:

$(function(){

    $.fn.magnifying = function(){
        var that = $(this),
         $imgCon = that.find('.con-fangDaIMg'),//正常图片容器
            $Img = $imgCon.find('img'),//正常图片,还有放大图片集合
           $Drag = that.find('.magnifyingBegin'),//拖动滑动容器
           $show = that.find('.magnifyingShow'),//放大镜显示区域
        $showIMg = $show.find('img'),//放大镜图片
        $ImgList = that.find('.con-FangDa-ImgList > li >img'),
        multiple = $show.width()/$Drag.width();//倍数

        $imgCon.mousemove(function(e){
            $Drag.css('display','block');
            $show.css('display','block');
            //获取坐标的两种方法
            // var iX = e.clientX - this.offsetLeft - $Drag.width()/2,
            //  iY = e.clientY - this.offsetTop - $Drag.height()/2,    
            var iX = e.pageX - $(this).offset().left - $Drag.width()/2,
                iY = e.pageY - $(this).offset().top - $Drag.height()/2,    
                MaxX = $imgCon.width()-$Drag.width(),
                MaxY = $imgCon.height()-$Drag.height();
            /*这一部分可代替下面部分,判断最大最小值
            var DX = iX < MaxX ? iX > 0 ? iX : 0 : MaxX,
                DY = iY < MaxY ? iY > 0 ? iY : 0 : MaxY;
            $Drag.css({left:DX+'px',top:DY+'px'});         
            $showIMg.css({marginLeft:-3*DX+'px',marginTop:-3*DY+'px'});*/

            iX = iX > 0 ? iX : 0;
            iX = iX < MaxX ? iX : MaxX;
            iY = iY > 0 ? iY : 0;
            iY = iY < MaxY ? iY : MaxY; 
            $Drag.css({left:iX+'px',top:iY+'px'});         
            $showIMg.css({marginLeft:-multiple*iX+'px',marginTop:-multiple*iY+'px'});
            //return false;
        });
        $imgCon.mouseout(function(){
            $Drag.css('display','none');
            $show.css('display','none');
            //return false;
        });

        $ImgList.click(function(){
            var NowSrc = $(this).attr('src');
            $Img.attr('src',NowSrc);
            $(this).parent().addClass('active').siblings().removeClass('active');
        }); 
    }

    $("#fangdajing").magnifying();


});
十六、JS实现淘宝商品详情的放大镜效果 一、思路1.界面由3种图片(小中大)组合而成;2.根据小图的索引值来控制中图的切换,但是由于大图不能直接索引,所以可以通过对中图的索引值间接索引来控制大图的切换;二、步骤1.绘制基础界面&lt;div class="block"&gt;    &lt;div class="big"&gt;&lt;/div&gt;    &lt;div class="middle"&gt;        阅读详情

相关推荐

淘宝-静态页面编写(4)--头部搜索/导航栏

头部搜索 分块 首先我们观察这部分,可清晰的将它分成三个模块,左边的淘宝网,中间的搜索栏以及右边的二维码。这里我们需想一下怎么把中间的搜索栏放入中间位置,我采用的是先将左右两侧靠边放置并设置浮动,那么中间的搜索栏就会上去,再设置margin:0 auto后就可以将搜索栏居中啦 左边淘宝网 淘宝网这里是一个图片,一般采用以图换字的方法,使页面在设计和可访问性之间达到平衡,并且由于在页面左侧,将其设置为左浮动: <h1 class="fl"><a href="#">淘宝网</a&

蒋宗正的博客 2668

商品详情页商品放大镜效果

源码下载地址:https://gitee.com/meijunna/lunbohtml&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3...

前端小白成长记 3943

淘宝美工图片处理规范

利用周末时间整理出来一些图片,今天就主要处理图片,之前了解过淘宝开店的一些规则,产品的主图是800x800,今天特意又查看一些其他方面的规范。 主图: 1、建议主图尺寸使用800x800,主图尺寸只要>700x700就会提供放大镜功能; 2、主图大小<3MB。 3、最后一张建议为白底图。 4、清晰美观,无拉伸扭曲。 5、促销信息和品牌信息可以放在图片四个顶角上,不影响和遮挡原图片,无边框。 直通车图: 淘宝直通车是为专职淘宝和天猫卖家量身定制的,按点击付费的效果营销工具,为卖家实现宝贝的精准推广

weixin_49416957的博客 2342

原生javascript防淘宝商品详情实现放大镜效果

我们经常逛淘宝的时候到淘宝商品详情看的时候,会经常使用到商品图片的放大镜功能,以前一直不知道怎么实现,遇到基本上都是网上找代码改,今天就用原生的js实现以下放大镜效果。 码云上的代码: js淘宝放大镜效果 效果如下图所示(ps:请忽略掉图片那个丑逼): 实现原理: 准备好大图(清晰的)和小图,两张图片必须一样只是放大或者缩小了而已,鼠标移入小缩略图的时候,上面的小图显示相应的图片,当

CodingNoob 2097

RTX 6000 Pro Blackwell 踩坑实录:Qwen3.8-NVFP4 生成 HTML 表格半路截断?元凶竟不是显存

本文复盘了在RTX 6000 Pro Blackwell 96GB显卡上部署Qwen3.8-27B-NVFP4模型时,生成HTML表格中途截断的问题。经排查,主因非显存或上下文限制,而是五类易被忽视因素:1)Dify最大回复长度过小导致token截断;2)NVFP4量化精度不足致结构化输出断裂;3)接口超时、停止词误触发与流式渲染异常;4)HTML标签未闭合引发前端渲染假象;5)极低概率的上下文超限。建议27B级模型优先采用FP8权重,兼顾精度与性能,避免为省显存牺牲生成质量。

2501_93651177的博客 53

卡尔曼滤波五步拆解:用Excel手推姿态解算全过程

本文通过Excel手推演示,详细拆解了卡尔曼滤波在姿态解算中的五步核心流程。文章以融合陀螺仪与加速度计数据估算角度为例,从状态预测、协方差更新到增益计算,逐步展示如何将抽象的矩阵运算转化为可视化的表格计算,帮助读者直观理解滤波器的“预测-修正”机制,并为算法实现与参数调优提供清晰指导。

hhh00的博客 978

使用js+css样式实现淘宝详情页图片放大镜的效果

前台: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="/js/jquery-2.1.1.min.js...

听风动的博客 3625

SRAM:SRAM入门指南与工作原理

SRAM(Static Random Access Memory),即静态随机存取存储器,是一种能够读取和写入数据的内存(RAM)。它使用由晶体管组成的触发器来存储数据,只要有电源供应,数据就可以稳定地保存。与动态随机存取存储器(DRAM)不同,SRAM 不需要周期性地刷新来保持数据。

weixin_42896509的博客 1万+

淘宝详情放大镜效果

let dataArr = [{ small: "./images/imgA_1.jpg", middle: "./images/imgA_2.jpg", big: "./images/imgA_3.jpg" }, { small: "./images/imgB_1.jpg", middle: "./images/imgB_2.jpg", big: "./images/imgB_3.jpg" }, { small: "./images/imgC_1.j

V________的博客 227

Kubernetes+EdgeX:构建企业级AI边缘推理平台

设备:工业摄像头(RTSP协议,输出1920x1080视频流);AI模型:YOLOv8训练的轴承裂纹检测模型(识别“裂纹”“正常”两种类型);目标:摄像头采集图像→EdgeX传输数据→K8s推理服务检测→结果反馈到报警器(HTTP协议)。Kubernetes+EdgeX的组合,为企业构建AI边缘推理平台提供了标准化、可扩展标准化:K8s的容器编排和EdgeX的设备管理,都是行业标准,避免“重复造轮子”;可扩展:支持从单边缘节点到 thousands of nodes 的规模,满足企业的增长需求;

AI算力网络与通信的博客 1343

Cadence Allegro实战:如何精准导入结构DXF文件避免安装偏差(附图层配置技巧)

本文详细讲解了在Cadence Allegro中精准导入结构DXF文件以避免安装偏差的实战技巧。核心在于导入前的单位校准、创建专用图层结构,以及基于坐标基准点的精确对齐方法。文章还分享了将DXF图形转化为正式板框和禁布区、高效管理图层以及向结构工程师导出DXF的完整流程,帮助PCB工程师确保设计与机械结构完美契合。

1a2s3d4f5g的博客 506

GPT Image 2 出的 UI 图如何转成 HTML 和可编辑 Figma

AI 生成的 UI 图,本身只是起点。用 Codex 或 Claude Code 把它变成 HTML,就有了能演示的页面;用 html.to.design 把 HTML 导回 Figma,就有了能沉淀的设计源文件;用 Codia 直接把图转成 Figma,则适合只要设计稿、追求速度的场景。三条链路互相补充,组合起来就形成了"图、代码、设计稿"之间的闭环。同时也要清楚它的边界:单张位图缺少精确数值,像素级还原目前还做不到稳定;图里的文字和图标需要人工把关。

JEECG官方博客 209

[AHK]获取通达信软件上的股票代码

PC上的股票交易软件的自动止损、自动下单等功能比较弱,不如期货交易软件。 自力更生,程序员都是自己打造工具。 根据IPO模型(Input 输入,Process处理,Output输出),为了方便自动化首先要获取当前交易软件上浏览的股票代码。 截图再OCR显然太麻烦,通过Winspy工具查看下交易软件自带功能的消息号(33780),大家记住这个号码! 下面在用AutoHotkey作为变成语...

liuyukuan的专栏 1万+

开源项目推荐:2027 高考志愿填报指北|开源单页 HTML 高报资料工具书

高考志愿填报信息量大、维度多,考生与家长往往面临资料零散、信息不对称、优质内容收费门槛高等问题。《2027 高考志愿填报指北》是雪人老师开源的高报笔记资料汇编,将 683 篇、280.5 万字的原创笔记整合为单页 HTML 电子书,覆盖专业、院校、城市、填报攻略四大板块。支持左侧折叠导航、快速跳转、浏览器原生 A4 打印,可在线阅读也可本地保存使用,采用 CC BY-NC 4.0 协议开源,非商业场景可自由传播改编,是高考志愿填报阶段实用的免费参考工具书。关键词:高考志愿填报;高报资料;开源电子书;

Admans的专栏 280

一文探讨视频秒开:m3u8视频格式与视频秒开优化

秒开指的是,一秒内成功加载的播放数/播放总数。本意是想对比一下m3u8与mp4视频格式,并了解m3u8格式优缺点,以确定一个大概优化方向。但对m3u8做简单了解后,觉的m3u8可能是一个优化方向。

bjxiaxueliang的CODING小栈 2万+

飞腾UEFI配置GPIO—飞腾FT2000/4 (D2000/8) GPIO引脚配置及使用

讲解了在飞腾UEFI代码中如何添加GPIO配置相关代码,并以GPIO1_B0—B7为例,将这8个引脚配置为GPIO工作模式并默认输出低电平

qq_30135687的博客 5343

Web端3D模型加载实战指南_Vue3_uni-app_HTML

很多同学一上来就问"uni-app 怎么加载 3D 模型",结果折腾三天发现方案根本不适用于自己的端。动手前先把下面这张表看完。结论:Web 端一律优先用 。 它是 Khronos 官方标准,被 three.js、model-viewer、微信小程序 XR-Frame 等所有主流方案原生支持,且是单文件,不涉及跨域、相对路径、资源丢失这些烦心事。免费模型资源站:Sketchfab、Poly Haven、Khronos glTF-Sample-Assets(官方示例模型,测试首选)。上线前必做的瘦身动作(一个

qq_19716091的博客 226

通信算法之325:无人机云哨协议及发射机接收机仿真算法

【代码】通信算法之325:无人机云哨物理层协议及发射机接收机仿真代码。

leegang12的专栏 362

保姆级 | CTF Lemon:禁用右键/F12 怎么破?查看源码 + HTML 注释拿 flag

这道题表面上“右键被禁用、F12 被禁用”,看起来没法看源码,但这些限制都只是网页里的 JavaScript 搞的鬼。本文会讲清楚它是怎么禁用的、为什么这种限制不可靠,以及如何一键绕过拿到 flag。本题完整链路:页面用 JS 拦截右键/F12 → 用Ctrl+U或 curl 绕过 → 在 HTML 末尾注释里找到 flag。禁用右键(contextmenu)和 F12(keydown)都是前端 JS,靠实现;前端限制运行在用户浏览器,可被绕过,不可作为安全手段;绕过首选Ctrl+U。

YY888888_的博客 360

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

纯静态HTML项目文件打包成war包

纯静态HTML项目文件打包成war包

bjzhang75的博客 200

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

热榜上手|HyperFrames:写HTML出MP4

HeyGen 开源的 TypeScript 视频框架:把 HTML、CSS 动画直接渲染成确定性 MP4,专为 AI agent 批量出片设计,单周涨 5633 star。

mihuyang的博客 250

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

前端三剑客与 HTML 核心标签

前端是项目的门面。这篇文章把 HTML 的骨架作用、常用标签的专属属性、iframe 嵌套、锚点定位、表格与表单逐项拆开,最后落到「一个标签的属性能干什么」这个最实际的问题上。

2401_89953644的博客 238

OpenCode v2.2 Artifacts 实战:让 Agent 交付可预览 HTML、插件存储与发布治理

OpenCode v2.2.4 新增实验性的 Artifacts 能力,Agent 可以创建、读取、更新、删除并预览 HTML 或静态制品。本文从启用配置、四类核心工具、本地 Provider、插件存储、版本化更新、预览验收到安全与发布治理,给出一套把“代码生成”升级为“可查看、可验收、可追溯交付”的团队实践。

jerry764的博客 406

用VBA调用Python脚本抽取Word文档表格HTML

本文通过使用VBA调用Python脚本抽取Word文档中的表格的等价HTML表结构代码,演示了VBA调用Python脚本以及获取Python节本输出的方法。

yivifu的专栏 173
上一篇: 【技巧】使用视频作为网页背景的技术探讨
下一篇: 【技巧】Bootstrap3表格之实战
邹大叔
博客等级 码龄10年 71粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值