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 相关文章推荐
基于jquery的分页控件(C#)
Jan 06 Javascript
jquery.post用法关于type设置问题补充
Jan 03 Javascript
jQuery简单几行代码实现tab切换
Mar 10 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
jquery自适应布局的简单实例
May 28 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
JS对象创建的几种方式整理
Feb 28 Javascript
使用selenium抓取淘宝的商品信息实例
Feb 06 Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 30 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 Javascript
vue实现验证用户名是否可用
Jan 20 Vue.js
利用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中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python write无法写入文件的解决方法
2019/01/23 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
python 装饰器的使用示例
2020/10/10 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
Linux Interview Questions For software testers
2013/05/17 面试题
中专毕业自我鉴定
2013/10/16 职场文书
企业法人授权委托书
2014/04/03 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
Redis Lua脚本实现ip限流示例
2022/07/15 Redis