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 相关文章推荐
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
jquery中ajax使用error调试错误的方法
Feb 08 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
批量下载对路网图片并生成html的实现方法
Jun 07 Javascript
基于jQuery实现的幻灯图片切换
Dec 02 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 Javascript
详解vue 命名视图
Aug 14 Javascript
webpack 如何解析代码模块路径的实现
Sep 04 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 Javascript
js仿京东放大镜效果
Aug 09 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
行政专员岗位职责
2014/01/02 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
未中标通知书
2015/04/17 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书