本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下

注释:
small img size:600x400
big img size:1200x800
原理:
1、大图是小图的 2倍整
2、大图以小图片中心点为中心
a.transform : translate(-50%,-50%)
b.(rate-0.5)*50%
c.clip : rect(t,r,b,l) 以小图边界为边界
3、rect必须有absolute
4、获取鼠标在图片中的位置
a.获取鼠标位置 XY
b.获取图片位置、宽度、高度
i.得到鼠标在图片的百分比位置
ii.将百分比位置应用于大图 left,top
问题:
居中理解太差:
absolute ,left ,top,right,bottom,margin
放大缩小问题:
起初: transform: scale() 缩放
利用 transition 过渡
结果,采用这种方法会使得鼠标移动时很卡顿
可能原因:每次hover 都会触发 transition事件
解决方法:采用了 Animate 动画来实现缩放
细节:
以 onmouse 事件 e 动态获得 e.pageX 和 e.pageY
以 $().offset().top /left 获取图片位置
以 $().width() /height() 获取图片宽高
在错误的操作中也忘了获取 class 的方法
$().attr("class")
$().prop("class")
event.traget.className
如果要实现 hover出现 透明的块状就在外部 opacity:0.5; 设置z-index就可以了。
<html>
<head>
<meta charset="UTF-8">
<title>WEBGOD</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
#warpper{
margin: 0 auto;
padding: 0;
position: relative;
z-index: 1;
width: 600px;
height: 400px;
}
.small{
text-align: center;
}
.big{
display: none;
clip: rect(200px,900px,600px,300px);
position: absolute;
width: 1200px;
height: 800px;
top: 50%;
left:50%;
transform: translate(-50%,-50%);
}
.big img{
position: absolute;
width: 600px;
height: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
</style>
</head>
<body>
<div id="warpper">
<div class="small">
<img src="img/small_19.jpg"/>
</div>
<div class="big">
<img src="img/img_19.jpg"/>
</div>
</div>
<script type="text/javascript">
$(function(){
var x,y,left,top,width,height,imgWidth,imgHeight,rateX,rateY;
$("#warpper").hover(function(){
$(".big").css("display","block");
$(".big img").animate({"width":"1200px"},500);
},function(){
$(".big img").animate({"width":"600px"},1);
$(".big").css("display","none");
})
$("#warpper").on("mousemove",function(e){
x = e.pageX;
y = e.pageY;
top = $(".small img").offset().top;
left = $(".small img").offset().left;
width = $(".small img").width();
height = $(".small img").height();
//
imgWidth = $(".big img").width();
imgHeight = $(".big img").height();
rateX = (left+width-x)/width;
rateY = (top+height-y)/height;
if(rateX>0&&rateY>0&&rateX<=1&&rateY<=1){
$(".big img").css("left",(rateX-0.5)*50+"%");
$(".big img").css("top",(rateY-0.5)*50+"%");
}
})
})
</script>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js自制图片放大镜
# js图片放大镜
# js放大镜
# js图片放大镜效果实现方法详解
# JS实现图片放大镜插件详解
# JavaScript实现图片放大镜效果
# javascript实现商品图片放大镜
# JS版图片放大镜效果
# 基于JavaScript实现图片放大镜功能
# 鼠标
# 小图
# 就在
# 采用了
# 应用于
# 中也
# 大家分享
# 来实现
# 解决方法
# 太差
# 具体内容
# 大家多多
# 就可以
# 点为
# 这种方法
# 九宫格
# style
# span
# hover
# 时很卡顿
相关文章:
建站之星Pro快速搭建教程:模板选择与功能配置指南
盘锦网站制作公司,盘锦大洼有多少5G网站?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
大同网页,大同瑞慈医院官网?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
建站主机与服务器功能差异如何区分?
如何通过cPanel快速搭建网站?
如何确认建站备案号应放置的具体位置?
建站之星导航配置指南:自助建站与SEO优化全解析
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
成都网站制作报价公司,成都工业用气开户费用?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
微信推文制作网站有哪些,怎么做微信推文,急?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何选择建站程序?包含哪些必备功能与类型?
北京网站制作网页,网站升级改版需要多久?
Android自定义listview布局实现上拉加载下拉刷新功能
企业微网站怎么做,公司网站和公众号有什么区别?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何通过虚拟主机空间快速建站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何通过万网虚拟主机快速搭建网站?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何通过建站之星自助学习解决操作问题?
专业网站建设制作报价,网页设计制作要考什么证?
C++时间戳转换成日期时间的步骤和示例代码
建站之星如何保障用户数据免受黑客入侵?
公司网站的制作公司,企业网站制作基本流程有哪些?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何通过智能用户系统一键生成高效建站方案?
建站之星安装后界面空白如何解决?
如何通过老薛主机一键快速建站?
高端云建站费用究竟需要多少预算?
建站为何优先选择香港服务器?
定制建站方案优化指南:企业官网开发与建站费用解析
如何用腾讯建站主机快速创建免费网站?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
测试制作网站有哪些,测试性取向的权威测试或者网站?
如何配置FTP站点权限与安全设置?
公众号网站制作网页,微信公众号怎么制作?
建站DNS解析失败?如何正确配置域名服务器?
如何确保西部建站助手FTP传输的安全性?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
建站之星后台密码遗忘或太弱?如何重置与强化?
学校为何禁止电信移动建设网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。