时间:2021-05-26
需要实现的效果图:
今天开发的时候,遇到要点击缩略图之后居中显示图片的大图查看(大致效果如上图所示)~想了好几种实现方式,最开始的时候,是想通过animate来点击图片进行显示,可是后来当我想要让放大的图片进行居中显示和点击别的地方隐藏已显示的大图的时候,才发现实现起来有难度。
1 第一张点击图片将图片放大
下面将这种方式也贴出来,供自己参考(万一有需要的小伙伴正好需要这样的功能呢):
<div> <img class="dialog" src="xxx.jpg"> <div id="dialog_large_image"></div></div><script type="text/javascript"> $(function () { $("img.dialog").click(function() { var large_image = '<img src= ' + $(this).attr("src") + '></img>'; $('#dialog_large_image').html($(large_image).animate({ height: '50%', width: '50%' }, 500)); }); });</script>上述代码实现的效果如下图所示:
这个是最基本的渐变的效果实现。
- 2 第二种点击图片全屏居中显示(推荐这种实现方式)
HTML的样式部分:
代码部分用到了字符串的拼接(可以以后做参考用):
重要的是第二行var html = ...
for (var i in result_array) { var html = ''; var html = '<div id="dialog_pic"><div class="dialog-body"><img src="' + result_array[i]['photo_url'] + '?imageView2/1/w/128/h/128"></div></div> <div class="waterfall_stream_pic"><div class="item">'; if (result_array[i]['photo_url']) { html += '<img class="zoom" src="' + result_array[i]['photo_url'] + '?imageView2/1/w/128/h/128">'; } html += '<div><span>' + result_array[i]['final_score'] + '</span><span>(' + result_array[i]['baby_gender'] + '宝' + ')</span><p>' + parseInt(result_array[i]['age_in_month']/12) + '周岁'+ result_array[i]['age_in_month']%12 + '个月</p>'; html += '</div></div></div>'; $container_pics.append(html); } }CSS 样式部分(点击缩略图显示的一些代码,很重要~注意z-index: 100;这个属性值的作用)
#dialog_pic { position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.65); z-index: 100; display: none; .dialog-body { width: 100%; max-width: 250px; max-height: 300px; margin: 0 auto; padding: 10px; border-radius: 5px; background: white; overflow: auto; margin-top: 283px; img { width: 100%; } }}这里必须使用on事件来获取元素的点击事件,onclick不产生作用(为什么不产生作用,请看上一篇文章的关于on 和onclick 的说明)
下面的代码看起来很简洁,方便自己,方便他人)
至此,点击缩略图显示大图的功能到这里基本实现。但是这里有一个bug就是放大的图片有失真,不清晰(注:明天排查下是什么原因导致的~)
解决上面存留的bug:(bug出现了2个,一个是点击放大的图片失真,另一个是原图放大之后图片会旋转)
1.点击放大的图片失真(这个是我一开始没放原图<img src="' + result_array[i]['photo_url'] ">即后面不带参数)
var html = '<div id="dialog_pic"><div class="dialog-body"><img src="' + result_array[i]['photo_url'] + '?imageMogr/auto-orient"></div></div> <div class="waterfall_stream_pic"><div class="item">';2.解决旋转的方案(这个参数一般就是为了解决客户端IOS/Android图片横竖屏的问题,当然放在网页端应用也是OK的):
imageMogr/auto-orient
至此,点击缩略图显示大图的功能实现,已全部OK ~
以上所述是小编给大家介绍的JS点击缩略图整屏居中放大图片效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了jQuery左右滚动支持图片放大缩略图图片轮播效果。分享给大家供大家参考。具体如下:这是一款基于jQuery实现的左右滚动支持图片放大缩略图图片轮
如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下://获取图片原始宽度functiongetNatural
本文实例讲述了js仿土豆网带缩略图的焦点图片切换效果实现方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:仿土豆网带缩略图的焦点图片切换效果/*R
复制代码代码如下://////为图片生成缩略图//////原图片的路径///缩略图宽///缩略图高///publicSystem.Drawing.ImageGe
本文实例为大家分享了Android点击缩略图放大效果的具体代码,供大家参考,具体内容如下importandroid.animation.Animator;imp