這篇文章將為大家詳細講解有關(guān)JS如何實現(xiàn)點擊縮略圖整屏居中放大圖片效果,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供拱墅企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、做網(wǎng)站、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為拱墅眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
需要實現(xiàn)的效果圖:
今天開發(fā)的時候,遇到要點擊縮略圖之后居中顯示圖片的大圖查看(大致效果如上圖所示)~想了好幾種實現(xiàn)方式,最開始的時候,是想通過animate來點擊圖片進行顯示,可是后來當(dāng)我想要讓放大的圖片進行居中顯示和點擊別的地方隱藏已顯示的大圖的時候,才發(fā)現(xiàn)實現(xiàn)起來有難度。
1 第一張點擊圖片將圖片放大
下面將這種方式也貼出來,供自己參考(萬一有需要的小伙伴正好需要這樣的功能呢):
上述代碼實現(xiàn)的效果如下圖所示:
這個是最基本的漸變的效果實現(xiàn)。
- 2 第二種點擊圖片全屏居中顯示(推薦這種實現(xiàn)方式)
HTML的樣式部分:
代碼部分用到了字符串的拼接(可以以后做參考用):
重要的是第二行var html = ...
for (var i in result_array) { var html = ''; var html = ''; $container_pics.append(html); } }'; if (result_array[i]['photo_url']) { html += ''; } html += '' + result_array[i]['final_score'] + '(' + result_array[i]['baby_gender'] + '寶' + ')' + parseInt(result_array[i]['age_in_month']/12) + '周歲'+ result_array[i]['age_in_month']%12 + '個月
'; 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不產(chǎn)生作用(為什么不產(chǎn)生作用,請看上一篇文章的關(guān)于on 和onclick 的說明)
// pic zoom $(function() { //獲取縮略圖的點擊事件,然后將大圖片展示出來(樣式里默認顯示為```none```) $('.result_pics').on('click', 'img.zoom', function() { var $dialog = $('#dialog_pic'); //這里的dialog_pic是整個大圖的顯示區(qū)域(請注意,這里之只有采用變量賦值的方式是為了
下面的代碼看起來很簡潔,方便自己,方便他人)
$dialog.show(); // outerHeight聲明了整個窗口的高度 // 此處的代碼通過上面的圖片,我已經(jīng)標注出來了相應(yīng)的區(qū)域部分。整個頁面減去大圖片顯示區(qū)域從上到圖片的最底邊所產(chǎn)生的距離,然后除2就可以實現(xiàn)圖片的放大居中了。 var marginTop = ($dialog.outerHeight() - $('.dialog-body', $dialog).outerHeight()) / 2; $('.dialog-body', $dialog).css({ marginTop: marginTop }); }); // 點擊顯示的大圖,觸發(fā)事件,當(dāng)觸發(fā)當(dāng)前頁面內(nèi)里任何處位置,就會隱藏顯示的大圖 $('.result_pics').on('click', '#dialog_pic', function() { $(this).hide(); }); });
至此,點擊縮略圖顯示大圖的功能到這里基本實現(xiàn)。但是這里有一個bug就是放大的圖片有失真,不清晰(注:明天排查下是什么原因?qū)е碌膥)
解決上面存留的bug:(bug出現(xiàn)了2個,一個是點擊放大的圖片失真,另一個是原圖放大之后圖片會旋轉(zhuǎn))
1.點擊放大的圖片失真(這個是我一開始沒放原圖即后面不帶參數(shù))
var html = '';2.解決旋轉(zhuǎn)的方案(這個參數(shù)一般就是為了解決客戶端IOS/Android圖片橫豎屏的問題,當(dāng)然放在網(wǎng)頁端應(yīng)用也是OK的):
imageMogr/auto-orient
至此,點擊縮略圖顯示大圖的功能實現(xiàn),已全部OK ~
關(guān)于“JS如何實現(xiàn)點擊縮略圖整屏居中放大圖片效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章標題:JS如何實現(xiàn)點擊縮略圖整屏居中放大圖片效果
文章路徑:http://weahome.cn/article/jdhgoh.html