仿京东放大镜案例

仿京东放大镜案例

<html>

<head>
    <meta charset="utf-8">
    <style type="text/css">
        body,
        div {
            margin: 0;
            padding: 0;
        }

        #zhuti {
            margin: 50px;
            position: relative;
        }

        #small {
            width:220px;
            height: 200px;
            border: 1px solid #000;
        }
        #small img{
            width: 220px;
            height: 200px;
        }

        #big {
            border: 1px solid #666;
            overflow: hidden;
            width: 360px;
            height: 210px;
            position: absolute;
            left: 310px;
            top: 0px;
            display: none;
            /*默认隐藏*/
        }

        #jingtou {
            width: 50px;
            height: 50px;
            background: #666;
            opacity: 0.4;
            position: absolute;
            display: none;
            /*默认隐藏*/
        }

        #big img {
            position: absolute;
        }
    </style>
</head>

<body>
    <div id="zhuti">
        <div id="small">
            <div id="jingtou"></div>
            <img src="img/01.jpg">
        </div>
        <div id="big">
            <img src="img/01.jpg" id="bigimg">
        </div>
    </div>
    <script type="text/javascript">
        //封装一个函数(id形式参数)
        function $(id) {
            return document.getElementById(id);
        }
        var small = $('small');
        var big = $('big');
        var jingtou = $('jingtou');
        var zhuti = $('zhuti');
        var bigimg = $('bigimg');
        //监视鼠标(镜头)
        small.onmouseover = function () {
            big.style.display = 'block';
            jingtou.style.display = 'block';
        }
        small.onmouseout = function () {
            big.style.display = 'none';
            jingtou.style.display = 'none';
        }
        //挡鼠板移动的时候
        small.onmousemove = function (event) {
            //获得当前坐标 //减去镜头宽度的一半
            var left = event.clientX - zhuti.offsetLeft - jingtou.offsetWidth / 2;
            var top = event.clientY - zhuti.offsetTop - jingtou.offsetHeight / 2;
            //进行判断语句(固定0的位置)
            //向左走
            if (left <= 0) {
                left = 0;
            }
            //向上走
            if (top <= 0) {
                top = 0;
            }
            //向右走
            if (left >= small.offsetWidth - jingtou.offsetWidth) {
                left = small.offsetWidth - jingtou.offsetWidth;
            }
            //向下走
            if (top >= small.offsetHeight - jingtou.offsetHeight) {
                top = small.offsetHeight - jingtou.offsetHeight;
            }
            //小图的比例
            var smallX = left / (small.offsetWidth - jingtou.offsetWidth);
            //var smallX = left / (small.offsetWidth - jingtou.offsetWidth);
            var smallY = top / (small.offsetHeight - jingtou.offsetHeight);
            //var smallY = top / (small.offsetHeight - jingtou.offsetHeight);
            var bigX = -smallX * (bigimg.offsetWidth - big.offsetWidth);
            var bigY = -smallY * (bigimg.offsetHeight - big.offsetHeight);
            //求a和b的值
            bigimg.style.left = bigX + 'px';
            bigimg.style.top = bigY + 'px';
            //镜头距离左边的位置==鼠标距离左边的位置
            jingtou.style.left = left + 'px';
            jingtou.style.top = top + 'px';
        }
    </script>
</body>

</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio是一款功能强大的集成开发环境,可以帮助开发者快速构建出高质量的安卓应用程序。 仿京东的安卓应用程序不仅需要具备京东商城的功能特点,还要考虑用户体验、界面设计、商品展示、购物流程等方面的细节。 首先,我们可以在Android Studio中创建一个新的安卓项目,然后选择合适的布局和组件来设计京东商城的首页界面。可以使用RecyclerView来展示商品列表,使用CardView来展示商品的详细信息,并通过ViewPager或者TabLayout来展示不同分类的商品。 其次,我们要考虑用户体验和交互性。可以使用Fragment来实现不同页面之间的切换,使用SharedPreferences来存储用户的购物车信息和历史浏览记录。 另外,可以使用Retrofit来进行网络请求,加载商品数据。 购物流程也是非常重要的一部分。在Android Studio中,我们可以通过编写代码来实现购物车功能,包括添加商品到购物车、商品结算等功能。同时,我们还可以利用第三方支付SDK来实现支付功能。 最后,还要考虑到应用的性能和稳定性。通过Android Studio的性能分析工具,可以检测应用的性能问题,并进行优化。另外,可以利用Firebase Crashlytics来监控应用的崩溃问题,以保证应用的稳定性。 总而言之,通过使用Android Studio,我们可以实现仿京东的安卓应用程序。并且可以通过不断学习和探索,进一步完善应用的功能和性能,给用户带来更好的使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值