js仿淘宝商品放大预览功能


Posted in Javascript onMarch 15, 2017

将鼠标移动至图片区域可放大预览

效果图:

js仿淘宝商品放大预览功能

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    *{padding:0; margin:0;}
    #img1{width:300px; height:200px;}
    #sp1{width:60px; height:40px; position: absolute; left:0; top:0; background: rgba(62, 55, 58, 0.4)
    }
    #img2{width:2250px; height:1500px; position: absolute;}
    div{width:450px; height:300px; position: absolute; left:310px; top:0; overflow: hidden; border:2px solid black; display: none;}
  </style>
  <script>
    window.onload=function(){
      var img1 = document.getElementById('img1');
      var img2 = document.getElementById('img2');
      var sp = document.getElementById('sp1');
      var oBox = document.getElementById('box');
      sp.onmouseover=function(){
        oBox.style.display='block';
      };
      sp.onmouseout=function(){
        oBox.style.display='none';
      };
      document.onmousemove=function(ev){
        var x = (ev.clientX || event.clientX)-sp.offsetWidth/2;
        var y = (ev.clientY || event.clientY)-sp.offsetHeight/2;
        if((ev.clientX || event.clientX)<sp.offsetWidth/2){
          x = 0;
        }
        if((ev.clientX || event.clientX)>img1.offsetWidth-sp.offsetWidth/2){
          x = img1.offsetWidth-sp.offsetWidth;
        }
        if((ev.clientY || event.clientY)<sp.offsetHeight/2){
          y = 0;
        }if((ev.clientY || event.clientY)>img1.offsetHeight-sp.offsetHeight/2){
          y = img1.offsetHeight-sp.offsetHeight;
        }
        if((ev.clientX || event.clientX)<300 && (ev.clientY || event.clientY)<200) {
          sp.style.left = x + 'px';
          sp.style.top = y + 'px';
          img2.style.left = -x * (img2.offsetWidth / img1.offsetWidth) + 'px';
          img2.style.top = -y * (img2.offsetHeight / img1.offsetHeight) + 'px';
        }
      }
    }
  </script>
</head>
<body>
<img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489083204637&di=244fe324db033fc826de48e90d2373f0&imgtype=0&src=http%3A%2F%2Fpic2015.5442.com%2F2016%2F0328%2F025%2F5.jpg%2521960.jpg
" alt="" id="img1">
<span id="sp1"></span>
<div id="box">
  <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489083204637&di=244fe324db033fc826de48e90d2373f0&imgtype=0&src=http%3A%2F%2Fpic2015.5442.com%2F2016%2F0328%2F025%2F5.jpg%2521960.jpg
" alt="" id="img2">
</div>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
深入认识JavaScript中的函数
Jan 22 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
May 30 Javascript
把JS与CSS写在同一个文件里的书写方法
Jun 02 Javascript
网络图片延迟加载实现代码 超越jquery控件
Mar 27 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
node.js操作mysql(增删改查)
Jul 24 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
vue打包的时候自动将px转成rem的操作方法
Jun 20 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
Mar 15 #Javascript
javascript九宫格图片随机打乱位置的实现方法
Mar 15 #Javascript
JavaScript实现审核流程状态的动态显示进度条
Mar 15 #Javascript
js实现自定义进度条效果
Mar 15 #Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 #Javascript
jQuery模拟窗口抖动效果
Mar 15 #Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 #Javascript
You might like
三个类概括PHP的五种设计模式
2012/09/05 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
利用JS实现数字增长
2016/07/28 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
Python根据区号生成手机号码的方法
2015/07/08 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
大学三年计划书范文
2014/04/30 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
警示教育片观后感
2015/06/17 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python
Java线程的6种状态与生命周期
2022/05/11 Java/Android
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript