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 相关文章推荐
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 Javascript
JS文本框不能输入空格验证方法
Mar 19 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
js中opener与parent的区别详细解析
Jan 14 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
Node.js开发者必须了解的4个JS要点
Feb 21 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
JS中Object对象的原型概念基础
Jan 29 Javascript
详解vuex 渐进式教程实例代码
Nov 27 Javascript
vue获取验证码倒计时组件
Aug 26 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
Vue如何实现验证码输入交互
Dec 07 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编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
实用javaScript技术-屏蔽类
2006/08/15 Javascript
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
详解在Python中处理异常的教程
2015/05/24 Python
python中__slots__用法实例
2015/06/04 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python单例模式的两种实现方法
2017/08/14 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
一年级学生评语大全
2014/04/21 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
5.12护士节活动总结
2015/02/10 职场文书
设备技术员岗位职责
2015/04/11 职场文书
六年级数学教学反思
2016/02/16 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js