本文主要為大家詳細介紹了jquery點擊文字或圖片內容放大並居中顯示,具有一定的參考價值,有興趣的小伙伴們可以參考一下,希望能幫助到大家。
我們想要實現的效果是:
點擊一張小圖,會在頁面的居中位置顯示一張大圖。
使用了animate動畫函數,有從小圖到大圖,從小圖位置到居中位置的軌跡。
支援IE7以上瀏覽器,火狐、Google瀏覽器。
大圖得居中位置,我主要使用瞭如下程式碼:
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();
這裡面加上了滾動條的寬度和高度,這樣可以在有捲軸的情況下也是居中顯示的。
主要的程式碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>单击文字或图片内容放大显示</title> <script src="../jquery-1.8.3.min.js"></script> <style> *{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;} </style> </head> <body> <ul> <li><img src="/static/imghwm/default1.png" data-src="mm1.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></li> <li><img src="/static/imghwm/default1.png" data-src="mm2.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></li> <li><img src="/static/imghwm/default1.png" data-src="mm3.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></li> <li><img src="/static/imghwm/default1.png" data-src="mm4.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></li> </ul> <p class="bigpic" style="display:none;"> <p class="pic-one"><img src="/static/imghwm/default1.png" data-src="m1.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></p> <p class="pic-two"><img src="/static/imghwm/default1.png" data-src="m2.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></p> <p class="pic-three"><img src="/static/imghwm/default1.png" data-src="m3.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></p> <p class="pic-four"><img src="/static/imghwm/default1.png" data-src="m4.jpg" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" ></p> </p> <p class="alert" style="display:none;"> <a class="close" href="javascript:;" rel="external nofollow" >关闭</a> </p> <script> 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('p').eq(index).find('img').attr('src');//找到相对应的大图片 $('.alert').find('img').remove(); $('.alert').append("<img src="/static/imghwm/default1.png" data-src="+bigpic+" class="lazy" alt="jquery點擊文字內容放大並居中實例分享" >");//添加大图 $('.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); }) </script> </body> </html>
效果可複製程式碼,自行在頁面中查看。
相關推薦:
jquery實作點選彈出可放大居中及關閉的對話方塊(附demo原始碼下載)_jquery
以上是jquery點擊文字內容放大並居中實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1
好用且免費的程式碼編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境