类淘宝的放大镜效果

这里是一个在PC端电商页面经常用到的一种功能,它可以使消费者在查看页面的商品时看的更加清晰。也就是俗称的放大镜

这里需要用到一些知识,鼠标事件(mousemove,mouseenter,mouseleave),定位等事件。

这里的html布局是在页面上有一个div,内部放一张图片,和一个小滑块(小div),另一个位置放另一个div,内部放一张和上面相同的图片,这个图片要求是比上一张大。

<div class="small">
<img src="15/img/big.jpg"/>
<div class="slider">

</div>
</div>

<div class="big">
<img src="15/img/big.jpg"/>
</div>

在css方面,这些div和图片的位置都是定位的。

有一些刚开始是隐藏的,当触发一些鼠标事件的时候,才显示

*{margin: 0;padding: 0;}
.small{width: 500px;height: 500px;position: absolute;left: 100px;}
.small>img{width: 100%;}
.big{width: 500px;height: 500px;position: absolute;left: 600px;top: 100px;overflow: hidden;display: none;}

.small>img{width: 500px;height: 500px;}
.slider{width: 50px;height: 50px;position: absolute;background-color: rgba(255,0,0,0.3);display: none;}

有关JQuery,更多的是一些关于位置的问题

这里我百度了一下关于位置的方法

clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。

clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。

offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。

offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。

screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。

screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。

$(‘.small‘).mousemove(function (event) {
var x = event.clientX -$(‘.small‘).offset().left - $(‘.slider‘).width()/2;
var y = event.clientY - $(‘.small‘).offset().top - $(‘.slider‘).height()/2;
var minX = 0;

var maxX = $(".small").width()-$(".slider").width();
var minY = 0;

var maxY = $(".small").height()-$(".slider").height();
if (minX>x) {
x=minX;
};
if (maxX<x) {
x = maxX;
};
if (minY>y) {
y=minY;
};
if (maxY<y) {
y = maxY;
};

$(".slider").css({
left:x,
top:y
});

var bigX = -x/maxX*($(".big>img").width()-$(".big").innerWidth())+"px"
var bigY = -y/maxY*($(".big>img").height()-$(".big").innerHeight())+"px"
$(".big img").css({
position: "absolute",
left: bigX,
top: bigY
})
})
$(".small").mouseenter(function () {
$(".big").css("display","block");
$(".slider").css("display","block");
})
$(".small").mouseleave(function () {
$(".big").css("display","none");
$(".slider").css("display","none");
})

这个是关于JQuery的代码。

时间: 2024-10-13 16:14:42

类淘宝的放大镜效果的相关文章

淘宝-京东放大镜效果

效果 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>放大镜效果</title> 6 <style type="text/css"> 7 #div1 { 8 width: 180px; 9 height: 180px; 10 position: relative; 11 } 12 #div1

JS淘宝商品广告效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS淘宝商品广告效果</title> <style> ul{ margin: 0; padding: 0; } li{ list-style: none; } #ad{ width: 298px; height: 208px; border: 1

仿淘宝分页按钮效果简单美观易使用的JS分页控件

分页按钮思想: 1.少于9页,全部显示 2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码 附件中有完整例子的压缩包下载.已更新到最新版本 先看效果图: 01输入框焦点效果 02效果 模仿淘宝的分页按钮效果控件kkpager  JS代码: Js代码   var kkpager = { //divID pagerid : 'div_pager', //当前页码 pno : 1, //总页码 total : 1, //总数据条数 totalRecords : 0, //是否显示总页数

淘宝之放大镜

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> .box { width:350px; height: 350px; position: relative; margin-left: 200px; margin-top: 200px; border: 1px so

淘宝放大镜效果

淘宝放大镜效果,其实就是一张小图片,还有一张大图片.鼠标移动,按比例显示大图的一部分,在大图的父元素上设置overflow:hidden,就OK了.这里面需要注意换算好大小图的比例. 代码地址:https://github.com/peng666/blogs/tree/gh-pages/floats 在线测试地址:http://peng666.github.io/blogs/floats/

原生JS实现简单的淘宝放大镜效果

大家经常去淘宝买东西会发现,淘宝上的放大镜效果挺有意思的,这里简单的实现了下,代码中的图片地址 亲们可以自行更换; <!DOCTYPE html> <html> <head> <title>放大镜</title> <meta charset="utf-8" /> <style type="text/css"> *{ margin: 0; padding: 0; } body{ hei

淘宝店铺要想获得最好的效果有效提供人气和交易量

淘宝店铺要想获得最好的效果有效提供人气和交易量,以下秘诀采集了相关成功人士的秘诀希 望能帮到您!! 秘诀一:问答类推广:百度.天涯.搜狗.有道等各大问答网站搜索与你商店相关产品的问题,如“购买”.“便宜”.“价格”一类,耐心回答,积极提供帮助, 最后留下q号,等待有人加.加q之后要细心回答并帮助客户,到一定程度放链接.如果有客户不会上淘宝要耐心教他注册.支付等等细节,不要嫌麻烦,如果你一 步步的教他购买,那他一定会是你的终身客户. 秘诀二:邮件推广: 1.运用qq群邮件推广.加q群,发群邮件.q

iOS 仿淘宝加入购物车前选择尺寸,规格弹窗的向内凹陷折叠动画效果和标签流布局

项目中做了一套电商的购物流程,很多都是照着淘宝做的,之前一直疑惑淘宝的弹框 时,底部的控制器向内凹陷是什么鬼,这动画有点理解不了,一直就放着没有做,这周 末突然在github上看到一个老外写的库,真的有点强啊,我这里简单写了个Demo给大家分析下,然后再用这个牛B的库集成下展示最终成果 老规矩,看图说话,一个是自己写的Demo,一个是通过库展示给大家       在介绍库之前先自己写个Demo捋一捋思路 第一个View:根部控制器,我们设置为黑色 第二个View:根部VC上面加载另一个用来做动画

iOS开发——仿淘宝添加到购物车的动画效果实现

这篇博文实在不知道该起什么名字才能概况我的意思...挫语文水平 类似于淘宝一样,我们在写一些购物.订餐之类的app的时候,在用户选择购买或者加入购物车时可以添加一个商品飞到购物车中的动画效果,如下图所示: 实现这个效果还是不算难的,但涉及的问题比较多,还是挺有学习价值的.主要面对的问题有以下几点 1.cell中有button,如何获得该button,即如何知道用户点击的是哪一个button. 2.坐标系的转换,这里频繁使用坐标系转换,主要原因是这里需要涉及三个视图--cell.tableView