#商城放大镜------------进阶篇

本文详细介绍了如何使用HTML、CSS和JavaScript实现一个带有黄色查看框的商城产品图片放大镜功能,包括不同尺寸图片的切换、鼠标悬停显示放大区域及背景图片定位调整。

#商城放大镜------------进阶篇

​ 效果基本如下:

在这里插入图片描述

​ 首先需要有几种大小分别为小,中,大的图片,基本思路还是跟上一篇差不多,主要多了一个黄色的查看框。

​ css:

<style>
        #left {
            width: 300px;
            height: 400px;
            margin: 150px;
            border: 1px solid #ccc;
            position: relative;
        }

        #img {
            height: 300px;
        }

        #list {
            display: flex;
            justify-content: space-evenly;
            align-items: center;
            height: 100px;
        }

        #list img {
            border: 1px solid transparent
        }

        #list img.active {
            border: 1px solid #ccc;
        }

        #right {
            width: 500px;
            height: 500px;
            border: 1px solid #ccc;
            background: green;
            position: absolute;
            top: 0;
            display: none;
            left: 300px;
        }

        .shadow {
            position: absolute;
            left: 0;
            top: 0;
            display: none;
            width: 150px;
            height: 150px;
            background: rgba(255, 217, 0, 0.24);
            cursor: move;
        }
    </style>

body:

<div id="left">
        <div id="img" style="background: url(./img/1.jpg) 0 / 100% 100%;">
            <div class="shadow"></div>
        </div>
        <div id="list">

        </div>
    </div>
    <div id="right" style="background: url(./img/2.jpg) center;"></div>

顺带回顾一下ajax请求,所以有json文件。

json:

[
    {
        "id": 1,
        "imgs": [
            "0.jpg",
            "1.jpg",
            "2.jpg"
        ]
    },
    {
        "id": 2,
        "imgs": [
            "3.jpg",
            "7.jpg",
            "9.jpg"
        ]
    },
    {
        "id": 3,
        "imgs": [
            "8.jpg",
            "6.jpg",
            "5.jpg"
        ]
    }
]

script:

<script>
        function $(str) {
            return document.querySelector(str)
        }

        window.onload = function () {

            let ajax = new XMLHttpRequest()
            ajax.open('GET', './data.json', true)
            ajax.send()
            ajax.onreadystatechange = () => {
                if (ajax.readyState === 4) {
                    if (ajax.status === 200) {
                        let arr = JSON.parse(ajax.response)
                        arr.forEach((r, i) => {
                            let img = document.createElement('img')
                            img.src = './img/' + r.imgs[0]
                            if (i === 0) img.classList.add('active')
                            img.onmouseenter = function () {
                                let imgs = $('#list').children
                                for (let i = 0; i < imgs.length; i++) {
                                    imgs[i].classList.remove('active')
                                }

                                this.classList.add('active')
                                $('#img').style['background-image'] = `url(./img/${arr[i].imgs[1]})`
                                $('#right').style['background-image'] = `url(./img/${arr[i].imgs[2]})`

                            }
                            $('#list').appendChild(img)
                        })

                        let l = $("#left").offsetLeft + $('#left').offsetWidth
                        let t = $("#left").offsetTop

                        $("#right").style.left = l + 'px'
                        $("#right").style.top = t + 'px'

                        $("#img").onmouseenter = () => {
                            $('.shadow').style.display = 'block'
                            $('#right').style.display = 'block'
                        }

                        $("#img").onmouseleave = () => {
                            $('#right').style.display = 'none'
                            $('.shadow').style.display = 'none'
                        }

                        $("#img").onmousemove = (e) => {
                            let x = e.pageX - $('#left').offsetLeft
                            let y = e.pageY - $("#left").offsetTop

                            x = x / $('#left').offsetWidth
                            y = y / $('#left').offsetHeight

                            x = (x * 100).toFixed(4) + "%"
                            y = (y * 100).toFixed(4) + "%"


                            $("#right").style['background-position-x'] = x
                            $("#right").style['background-position-y'] = y

                            let xx = e.pageX - $('#left').offsetLeft - ($('.shadow').offsetWidth / 2)
                            let yy = e.pageY - $('#left').offsetTop - ($('.shadow').offsetHeight / 2)

                            if (xx < 0) xx = 0
                            if (yy < 0) yy = 0
                            let maxLeft = $('#left').offsetWidth - $('.shadow').offsetWidth
                            let maxTop = $('#img').offsetHeight - $('.shadow').offsetHeight
                            if (xx > maxLeft) xx = maxLeft
                            if (yy > maxTop) yy = maxTop

                            $('.shadow').style.left = xx + "px"
                            $('.shadow').style.top = yy + "px"
                        }


                    }
                }
            }
        }

    </script>

xx + “px”
$(’.shadow’).style.top = yy + “px”
}

                }
            }
        }
    }

</script>

这样一个比较完善的放大镜功能就实现啦!!!!
本科毕设、MRI+PET、3D ResNet-18、阿尔兹海默症(Alzheimer&#39;s disease)基于多模态融合的脑疾病智能诊断方法# 本科毕设:基于3D ResNet-18的MRI+PET多模态影像阿尔兹海默症检测本本科毕业设计聚焦于阿尔兹海默症(AD)的早期辅助诊断难题,提出了一种融合MRI(磁共振成像)与PET(正电子发射断层扫描)多模态影像的3D ResNet-18检测模型,旨在利用深度学习技术提升AD诊断的准确率与效率。传统AD诊断多依赖单一模态影像或临床量表,易受影像特征单一、主观因素干扰等问题影响。本研究针对这一痛点,首先对MRI和PET影像进行预处理,包括影像配准、归一化、裁剪等操作,提取大脑结构与代谢的双重特征;随后改进经典的3D ResNet-18网络,设计多模态特征融合模块,将两种影像的特征图进行通道级融合,弥补单一模态的信息缺失;同时通过迁移学习初始化网络权重,解决医学影像数据集样本量不足的问题。实验采用ADNI公开数据集,将模型与传统机器学习方法及单模态3D ResNet-18模型对比,结果显示融合MRI+PET的改进3D ResNet-18模型在AD分类任务中,准确率、召回率与F1值均显著提升,实现了对AD、轻度认知障碍(MCI)与健康对照组的有效区分。本设计不仅完成了模型的构建与验证,还通过可视化界面实现了影像上传、检测结果输出等功能,为临床辅助诊断提供了实用工具。研究成果验证了多模态影像融合与深度学习结合在AD检测中的优势,也为医学影像分析的本科毕设研究提供了典型的实践范式。运行环境(AutoDL云服务器)14核 Intel(R) Xeon(R) Gold 6330 CPU24GB RTX3090PyTorch 1.10.0Monai(实现数据增强、数据集读取)Visual Studio Cod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值