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网页制作特殊效果用随机数
May 22 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
AngularJS向后端ASP.NET API控制器上传文件
Feb 03 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
jQuery实现获取动态添加的标签对象示例
Jun 28 jQuery
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
vue父子组件通信的高级用法示例
Aug 29 Javascript
layui导出所有数据的例子
Sep 10 Javascript
Angular value与ngValue区别详解
Nov 27 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 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/04/09 魔兽争霸
php静态文件返回304技巧分享
2015/01/06 PHP
curl和libcurl的区别简介
2015/07/01 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
详解React中setState回调函数
2018/06/14 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Django框架下在视图中使用模版的方法
2015/07/16 Python
python文件与目录操作实例详解
2016/02/22 Python
详解Python文本操作相关模块
2017/06/22 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python几种常见算法汇总
2020/06/02 Python
python 实现超级玛丽游戏
2020/11/25 Python
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
小区门卫工作职责
2013/12/14 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
音乐专业自荐信
2014/02/07 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
win10搭建配置ftp服务器的方法
2022/08/05 Servers