jquery在html中显示文字居中,jquery单击文字或图片内容放大并居中显示

我们想要实现的效果是:

点击一张小图,会在页面的居中位置显示一张大图。

使用了animate动画函数,有从小图到大图,从小图位置到居中位置的轨迹。

支持IE7及以上浏览器,火狐、谷歌浏览器。

大图得居中位置,我主要使用了如下代码:

var width=$('.alert').find('img').width();//大图得宽高

var height=$('.alert').find('img').height();

var lwidth=$(window).width();//屏幕中页面可见区域的宽高

var lheight=$(window).height();

var x2=lwidth/2-width/2+$(window).scrollLeft();//在屏幕居中的坐标

var y2=lheight/2-height/2+$(window).scrollTop();

这里面加上了滚动条的宽度和高度,这样可以在有滚动条的情况下也是居中显示的。

主要的代码如下:

单击文字或图片内容放大显示

*{margin:0;padding:0;}

ul{overflow:hidden;list-style:none;margin:1000px auto;}

ul li{float:left;height:150px;width:130px;margin:0 10px;}

.bigpic{position:absolute;display:none;}

.alert{background:#fff;border:solid #ccc 1px;padding:10px;}

.alert a.close{position:absolute;top:0;right:0;}

  • mm1.jpg
  • mm2.jpg
  • mm3.jpg
  • mm4.jpg
m1.jpg
m2.jpg
m3.jpg
m4.jpg

var x=0;

var y=0;

$('ul li').click(function(e){

var index=$(this).index();

x= e.pageX|| e.clientX+$(window).scrollLeft();//鼠标点击的坐标

y= e.pageY|| e.clientY+$(window).scrollTop();

$('.alert').css({position:'absolute',top:y,left:x,width:'1px',height:'1px',overflow:'hidden'});

var bigpic=$('.bigpic').find('div').eq(index).find('img').attr('src');//找到相对应的大图片

$('.alert').find('img').remove();

$('.alert').append("+bigpic+");//添加大图

$('.alert').show();

var width=$('.alert').find('img').width();//大图得宽高

var height=$('.alert').find('img').height();

var lwidth=$(window).width();//屏幕页面可见区域的宽高

var lheight=$(window).height();

var x2=lwidth/2-width/2+$(window).scrollLeft();//在屏幕居中的坐标

var y2=lheight/2-height/2+$(window).scrollTop();

$('.alert img').css({width:'100%'});

$('.alert').animate({left:x2,top:y2,width:width,height:height},300);

})

//这出现一个问题,当alert宽度和高度都为15px时或以下,如果不加padding,img是100%,就会造成图片不是从左上角开始的,上面就会有空白,这是因为父元素是块状元素,有自己的行间距,二他的子元素是行内元素,这样就会有空隙,此时解决方法有两个,

// 给img加上display:block属性,形成块状元素;

// 或者img还是内联元素,此时使用vertical-align:top可以向上对齐。

//把父元素的间距设置为0,或者父元素的font-size设置为0yekeyi

$('.alert a.close').click(function(){

//console.log(x+'```'+y);

$('.alert').animate({left:x,top:y,width:'1px',height:'1px'},300); //全局变量

$('.alert').fadeOut(100);

})

效果可复制代码,自行在页面中查看。

2f8e99231fa20d12b43ed1d3421c17d4.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值