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 相关文章推荐
filemanage功能中用到的lib.js
Apr 08 Javascript
javascript实现iframe框架延时加载的方法
Oct 30 Javascript
提升jQuery的性能需要做好七件事
Jan 11 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
Vue实现购物车场景下的应用
Nov 27 Javascript
webpack热模块替换(HMR)/热更新的方法
Apr 05 Javascript
微信小程序 冒泡事件原理解析
Sep 27 Javascript
vue实现购物车功能(商品分类)
Apr 20 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
javascript实现页面的实时时钟显示示例
Aug 06 Javascript
vue中使用vue-pdf的方法详解
Sep 05 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python中tell()方法的使用详解
2015/05/24 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
python 瀑布线指标编写实例
2020/06/03 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
英语专业推荐信
2013/11/16 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
求职简历自荐信
2014/06/18 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
学校教学工作总结2015
2015/05/19 职场文书
学术会议开幕词
2016/03/03 职场文书
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript