欧美精品在线一区二区三区_亚洲女同精品视频_日韩一区免费_国产欧美久久久精品免费_国产这里只有精品_僵尸再翻生在线观看_久久99精品国产一区二区三区_亚洲免费一区二区_女教师淫辱の教室蜜臀av软件_中文字幕国产一区二区

關于圖片列表的寬度自適應解決辦法

2012-9-19    藍藍設計的小編

 

 轉載藍藍設計(  www.ocunn.cn  )是一家專注而深入的設計機構 ,為期望卓越的國內外企業提供有效的   BS界面設計 、  cs界面設計 、  ipad界面設計  、  包裝設計 、  圖標定制 、  用戶體驗 、交互設計、  網站建設 、平面設計服務

來源:http://www.uisheji.com/114057.html

如果您想訂閱本博客內容,每天自動發到您的郵箱中,          請點這里

從事網頁重構好幾年了,Javascript能力一直比較菜,主要還是做得太少。為了提高這方面的能力,這段時間主動承擔了一些這方面的工作,真心感到學習和積累的不易,不過時常伴隨著一些解決問題之后的小小成就感又讓人樂此不疲。

在近期一個項目中,遇到一個圖片列表自適應寬度顯示的問題,需求本身并不難,借此且算是梳理和總結一下當時的解決思路吧,也期望能給有需要做這類需求而又知如何下手的同學帶來一點小啟發。實現的方法應該很多,如果你有更好的,要分享哦~~

關于圖片列表的寬度自適應解決辦法

需求是這樣的,在一個自適應寬度的欄目里(如圖1):

關于圖片列表的寬度自適應解決辦法

1、  欄目的寬度可以因用戶的操作發生改變,如拖拽改變窗口大小等; 
2、  當寬度改變之后,需要圖片列表總是能在欄目中完好地顯示:圖片之間有一定的間距,并且不會出現半張圖。 
3、  若當前寬度不能完全顯示所有圖片時,可以通過點擊左右兩邊的箭頭進行滾動顯示。如圖2:

關于圖片列表的寬度自適應解決辦法

經過分析我們可以把需求分解為:欄目的寬度自適應、圖片列表的自適應顯示、列表的左右滾動。欄目的寬度自適應,可以直接用樣式來解決,寬度的獲取也簡單,不再多說。圖片的滾動也還好說,無非就是通過樣式改變列表的左右位置來實現。難點在于,在一個寬度會各種變化的區域中,怎么讓圖片列表自適應顯示呢?

對比圖1、圖2,我們發現前后的變化有:欄目寬度、圖片顯示個數、圖片之間的間距。寬度自適應好辦,那圖片個數和間距呢?嗯哪,這就是我們需要解決的核心問題。

1、關于可視區域

再看圖2,欄目中只有3個圖片,我們知道是因為其它部分被樣式隱藏了,而整個圖片列表其實是一直存在的一個整體。就像Flash里的遮罩一樣,我們要做的其實是按照用戶的意愿控制圖片列表的某一部分顯示給用戶看到。為便于后面好講,我們把用戶可以看到的這部分列表區域稱為列表的可視區域 。它的特點是隨著當前欄目的寬度變化而變化,如圖3:

關于圖片列表的寬度自適應解決辦法

圖片列表是死的,欄目寬度是變化的,如何讓圖片列表適應欄目寬度的變化完好顯示在可視區域里呢?好吧,你已經想到了…答案就是通過改變圖片之間的間距來實現。如圖4:

關于圖片列表的寬度自適應解決辦法

那么我們可以得出: 
可視區域的寬度  = 可視區域內可顯示的圖片寬度總和(下文稱可視圖片數 ) + 圖片間距 總和

2、計算可視圖片數

事情的關鍵是顯示圖片,我們就從計算可視圖片數開始。可視區域的寬度我們可以輕易獲取,所有圖片的寬度也是統一的尺寸(什么?不統一?還好還好,我們這的產品經理倒是還沒有BT到這個地步呢^^~ 這里還是先講固定的情況吧,不固定的情況下回再探討)。先忽略一下圖片間距,那么問題可以簡化為:

可視圖片數  = 可視區域寬度 / 單位圖片寬度

代碼(代碼中涉及到的html代碼請查看下文Demo):

//獲取當前可視區域的寬度
var pLstWrpWth = $('.jQ_ptLst').width();
//獲取單位圖片寬度(圖片可能包括邊框樣式等,取列表元素Li的寬度參與計算以避免誤差)
var valLstLiWth = $('.jQ_ptLst li').width();
//計算當前可視圖片數(可視區域寬度 / 單位圖片寬度 再取整)
valImgLth = Math.floor(pLstWrpWth / valLstLiWth);

3、計算圖片間距

那間距怎么計算呢?從圖4我們可以看出,除去所有可視圖片的寬度剩下的就是間距的總和。于是:

間距總和 = 可視區域寬度 – 單位圖片寬度 * 可視圖片數

這樣我們就可以計算圖片間距了:

圖片間距 = 間距總和(除去可視圖片寬度的可視區域寬度) / 間距個數(即可視圖片數+1,為何+1?看圖4)

代碼:

//向上取整可避免小數帶來的誤差)
valpLstMg = Math.ceil((pLstWrpWth - valImgLth * valLstLiWth) / (valImgLth + 1)); 

到這里,你會發現,其實最終需要解決的問題就是計算圖片間距。有了間距,我們就已經能做到根據欄目寬度,完好顯示可視區域的圖片了。至于能顯示多少圖,此時我們已經不關心了。

4、需要注意的情況

當上面計算出來的間距總和很小,或者干脆為0了… 如圖5:

關于圖片列表的寬度自適應解決辦法

像基友一樣合在一起顯然不好看~ – 此時,我們可以設定一個最小間距來解決這個問題。當計算出的間距小于這個間距時,就減少1個可視圖片,把原本屬于這個圖片的寬度分配給其余的圖片作為間距。代碼:

var pLstLesMg = 5;         //設定最小間距,即臨界間距
if(valpLstMg < pLstLesMg){
    valImgLth = valImgLth - 1;  //當間距小于臨界間距時,可視圖片數-1
    fnpLstMg();         //重新計算可視圖片數-1之后的間距
};

還有一種情況,如圖6:

關于圖片列表的寬度自適應解決辦法

可視圖片數 大于列表總圖片數 時(還有等于的情況哦),圖片總數即為可視圖片數。代碼:

var pLstImgLth = $('.jQ_ptLst').find('img').length;    //獲取圖片總數
if(valImgLth >= pLstImgLth){
    valImgLth = pLstImgLth;  //圖片總數即為可視圖片數
    fnpLstMg();      //用新可視圖片數重新計算間距
    $('.jQ_plstRoRt').hide();//隱藏向右滾動箭頭(初始化時可默認左箭頭隱藏,右箭頭顯示)
};

到這里,基本上圖片列表自適應寬度顯示就解決了,接下來就是圖片列表的滾動問題。

5、列表滾動

有經驗的同學可能一下就想到了,問題的關鍵是要怎么判斷當前滾動的是否為最后一張圖片(啊?你是說做循環滾動?滾到最后一張無縫拼接第一張圖,如此永遠滾下去?其實,我只是想說,你們的產品經理心眼真好~ 嗯好吧,看在大家都不容易的份上,我們姑且還是探討一下這種情況吧)。

那么如何知道滾到最后一張圖片了呢?我想的辦法是通過寬度計算,即:

已滾動總寬度 等于非可視區域寬度 (即可視區域兩側的寬度之和)時,即不能再向右滾動了。如圖7:

關于圖片列表的寬度自適應解決辦法

代碼:

var ptLstCurMg = parseInt(pLstRoWrp.css('margin-left')); //獲取當前已滾動寬度
//當已滾動寬度 = 非可視區寬度,即已滾動至最后一圖
var ptLstRoWth = (pLstImgLth - valImgLth) * (ptLstImgMg + valLstLiWth);
if(ptLstCurMg + ptLstRoWth == 0){
    $this.hide();   //隱藏右箭頭
};

以上是向右滾的情況,向左滾時就簡單了。當已滾動寬度為0時,即是向左滾動到頭了。

//當已滾動寬度 = 0,即已滾動至最前一圖
if(ptLstCurMg == 0){
    $this.hide();   //隱藏左箭頭
};

6、綁定方法

圖片列表滾動講完了,接下來就是執行這些方法了。為了自適應用戶適時改變窗口大小的情況,需要將自適應函數綁定到resize方法中執行,代碼:

//一旦窗口大小發生變化即會執行
$(window).resize(function(){
    fnAutoWth();    //自適應方法
});

啰嗦這么多,其實主要圍繞兩個問題:

a. 通過計算圖片間距控制列表的顯示

b. 通過寬度計算解決滾動至最末

OK~點擊這里是DEMO …(用瀏覽器打開之后,通過改變窗口大小,體驗圖片列表自適應效果。)

小思考 (沒看DEMO的同學可以不用思考哦~):將DEMO用瀏覽器打開后,拖動窗口至最小寬度,即當前欄目寬度小于圖片寬度時(小不動?用Chrome試試),列表中看不到圖了,為什么?如何解決呢?

整個過程其實還是挺簡單的,不知道我有沒說清楚,大家有沒聽明白?如果沒說清楚的地方正好你又感興趣,可以留言哦~親。不過,如果您是個修為高深的化神期強者,也希望多多指出不當之處啊,感謝感謝~~小可尚徘徊于筑基期~露怯…..學好JS說了好多年,想想那些年……所以,朋友,如果你也是個網頁重構,別光寫DIV了,有空多學學寫寫JS吧,挺有意思的呢~

話說,互聯網發展日新月異,各種新技術層不出窮,需要學習的東西還真多呢。。。加油~

各種學壓力大呀~ 要不,放松一下先擼一把?好吧… 小明、小純 艾歐尼亞,搞起~~~

(轉載請注明出處GDC)

日歷

鏈接

個人資料

藍藍設計的小編 http://www.ocunn.cn

存檔

久久日韩粉嫩一区二区三区| 盗摄系列偷拍视频精品tp| 国产精品亚洲一区二区三区妖精 | 亚洲成人蜜桃| 日本一区二区免费在线观看| 美女100%一区| 成人免费观看男女羞羞视频| 久久视频在线播放| 国产理论在线播放| 在线免费观看你懂的| 欧美一区久久| 欧美高清www午色夜在线视频| 欧美少妇一区| 日本熟女毛茸茸| 日本一区二区乱| 亚洲欧美日韩精品久久久久| 国产精品偷伦视频免费观看国产| 中文字幕免费视频| 1024在线看片你懂得| 国产麻豆欧美日韩一区| 久久精品国产综合| 国产乱码一区二区三区四区| 青青草免费观看免费视频在线| 韩国av一区| 日韩欧美国产电影| 欧美高清中文字幕| 亚洲精品国产av| 一区二区三区毛片免费| 欧美一区二区视频网站| 色撸撸在线观看| av老司机久久| 91精品综合久久久久久久久久久| 欧美日韩国产成人在线91| 亚洲日本无吗高清不卡| 在线视频欧美亚洲| av伊人久久| 欧美日韩高清影院| 青青草综合在线| 欧美一级免费片| 欧美另类女人| 日韩成人小视频| 九一精品在线观看| av在线女优影院| 国产精品一二一区| 欧美一区三区三区高中清蜜桃| 18禁裸乳无遮挡啪啪无码免费| 成人超碰在线| 国产婷婷色一区二区三区四区| 国产精品美女免费视频| 希岛爱理中文字幕| 榴莲视频成人app| 精品福利在线观看| 亚洲免费久久| 少妇无码一区二区三区| 亚洲国产高清一区| 中日韩午夜理伦电影免费 | 日韩av不卡在线观看| y97精品国产97久久久久久| 日韩高清一二三区| 久久久久99精品成人片毛片| 亚洲成人自拍| 国产又黄又猛又粗又爽| 女人丝袜激情亚洲| 欧美一区二区三区四区久久| 男女猛烈激情xx00免费视频| 天天操天天干天天舔| 国产一级久久| 国产一区二区三区在线免费观看| 欧美成人三级在线播放| 日韩在线资源| 北条麻妃一区二区三区| 性欧美在线看片a免费观看 | 日本欧美电影在线观看| 91丨九色丨尤物| 国产精品久久视频| 久草视频免费播放| 久久电影在线| 欧美日韩一区二区三区在线免费观看| 日韩免费三级| 欧美 日韩 国产 成人 在线| 国产综合网站| 色综合伊人色综合网| 超碰人人cao| 青春草视频在线观看| 久久久久久久久岛国免费| 亚洲字幕一区二区| 波多野结衣黄色网址| 99九九热只有国产精品| 日韩成人高清在线| 日韩av影视大全| av2020不卡| 亚洲三级电影网站| 日本一区不卡| 人人妻人人澡人人爽精品日本| 欧美在线国产| 久久久国产一区二区| 国产又粗又猛又爽视频| 99热这里有精品| 在线精品视频小说1| 大胆欧美熟妇xx| 麻豆国产在线播放| 成人网在线免费视频| 国产欧美日韩精品在线观看| 极品国产91在线网站| 99久久www免费| 亚洲人成在线播放| 中国一级特黄录像播放| 电影一区中文字幕| 欧美人动与zoxxxx乱| 国产免费视频传媒| 国精一区二区三区| 一区二区三区加勒比av| 超碰成人在线免费观看| 欧美午夜黄色| 91在线一区二区三区| 国产免费一区二区三区| 丰满人妻妇伦又伦精品国产| 免费人成网站在线观看欧美高清| 日本91av在线播放| 在线观看免费av片| 亚洲国产国产亚洲一二三| 欧美激情一区二区久久久| www.99re7| 日韩免费特黄一二三区| 国产一区二区日韩精品欧美精品| 在线免费观看日韩av| 天堂精品久久久久| 精品国产乱码久久久久久闺蜜 | 国产尤物视频在线| 日本一区二区三区国色天香 | 国产精品人成电影在线观看| 在线视频精品免费| 欧美资源在线| 国产精品aaaa| 中文字幕人妻色偷偷久久| 国产麻豆综合| 国产精品成人一区| 国产又粗又猛又爽又黄的| 丝袜亚洲另类丝袜在线| 国产精品美女www| 亚洲怡红院av| 韩日精品视频一区| 大波视频国产精品久久| 色窝窝无码一区二区三区成人网站 | 亚洲人成人99网站| 内射一区二区三区| 91精品一区国产高清在线gif| 久久视频在线免费观看| 久久久美女视频| 欧美人成在线| 热久久99这里有精品| 欧美日韩 一区二区三区| 国产日本精品| 国产成人福利网站| 国产又粗又长又大视频| 国产一区二区在线看| 国产精品伊人日日| 在线国产一级| 中文字幕日韩一区| 精品国产一区二区三区无码| 欧美人与性动交α欧美精品图片| 欧美日韩国产色| 国内自拍第二页| 一区二区亚洲视频| 日韩电视剧在线观看免费网站| 菠萝菠萝蜜网站| 精品美女久久| 久久久久久亚洲| 一级黄色免费片| 成人福利在线看| 一级特黄录像免费播放全99| 91在线高清| 韩曰欧美视频免费观看| 亚洲精品中文字幕乱码无线| 超碰精品在线观看| 中文字幕亚洲一区二区三区| 国产一国产二国产三| 久久午夜视频| 久久涩涩网站| gogo在线高清视频| 欧美色图片你懂的| 精品人妻少妇嫩草av无码| 日韩激情免费| 国产精品欧美风情| 亚洲超碰在线| 亚洲欧美国产毛片在线| 三级在线视频观看| 成人香蕉社区| 欧美高跟鞋交xxxxxhd| 在线免费一级片| 国产精品一色哟哟哟| 自拍偷拍一区二区三区| 黄色视屏在线免费观看| 日韩一区二区三免费高清| 日本一道本视频| 亚洲看片一区| 精品一区二区三区日本| 中文字幕在线观看播放| 欧美性色视频在线| 色噜噜在线观看| 久久精品国产www456c0m| 国产精品69久久| 亚洲精品一区视频| 亚洲6080在线| 欧亚乱熟女一区二区在线| 91视频综合| 91亚洲国产精品| 国产精品一二三区视频| 在线视频欧美精品| 免费黄在线观看| 亚洲欧美视频一区二区三区| 精品无人区一区二区三区 | bl视频在线免费观看| 欧美videos大乳护士334| 欧美日韩免费做爰视频| 久久99精品久久久久婷婷| 欧美精品一区在线| 蜜臀国产一区| 尤物yw午夜国产精品视频明星| 无码人妻丰满熟妇精品区| yourporn久久国产精品| cao在线观看| 福利片在线一区二区| 国自在线精品视频| 草久在线视频| 亚洲色图视频网| 男人的天堂影院| 亚洲黑丝一区二区| 久久亚洲午夜电影| 伊人网在线播放| 亚洲图片在线综合| 一炮成瘾1v1高h| 亚洲欧洲三级电影| 九九热免费在线观看| 五月久久久综合一区二区小说| 国产精品久久久久久婷婷天堂 | 婷婷亚洲精品| 国产精品爱久久久久久久| 中文字幕大看焦在线看| 欧美色另类天堂2015| 日本精品久久久久中文| 久久99久久精品| www.射射射| 奇米影视777在线欧美电影观看| 日韩av日韩在线观看| 国产免费视频在线| 欧美日韩在线精品一区二区三区激情| 精品一区在线视频| xnxx国产精品| 中文字幕在线视频一区二区| 欧美日韩一区二区国产| 欧美精品一区二区视频| 国产综合色激情| 97视频在线观看网址| 在线观看午夜看亚太视频| 欧美日韩一区二区三区视频 | 久久天堂久久| 人人爽久久涩噜噜噜网站| yw193.com尤物在线| 欧美大片免费久久精品三p | 无码av免费一区二区三区试看| 你懂得在线视频| 可以看av的网站久久看| 青青草视频国产| 亚洲精品白浆高清| 99在线视频首页| a欧美人片人妖| 欧美肥婆姓交大片| www污污在线| 欧美一级欧美三级在线观看| 波多野结衣视频免费观看| 中文字幕色av一区二区三区| 受虐m奴xxx在线观看| 极品美女销魂一区二区三区免费| 女人扒开屁股爽桶30分钟| 日韩欧美一区二区三区免费看| 99久久伊人精品影院| 黄色18在线观看| 色悠悠久久久久| 尤物视频网站在线观看| 日韩精品资源二区在线| 国产精品视频在线观看免费 | 欧洲亚洲一区二区三区四区五区| 日韩精品第二页| 国产成人亚洲精品| 福利小视频在线| 三级精品视频久久久久| 日本不卡视频一区二区| 亚洲国产女人aaa毛片在线| 亚洲h视频在线观看| 欧美在线观看18| 国产成人自拍偷拍| 天天综合天天做天天综合| 特级片在线观看| 国产精品污www在线观看| 国产精久久一区二区三区| 国产91高潮流白浆在线麻豆| 欧美高清精品一区二区| 麻豆高清免费国产一区| 中文字幕中文在线| 老司机亚洲精品| 色悠悠久久综合网| 久久一区中文字幕| 91蝌蚪视频在线观看| 亚洲一级一区| 亚洲 欧美 日韩 国产综合 在线| 亚洲91精品| 国产一区二区三区在线免费| 欧美hentaied在线观看| 麻豆md0077饥渴少妇| 精品一区毛片| 一区二区三区的久久的视频| 北条麻妃国产九九九精品小说| 天堂av一区二区| 国产成人久久| 尤物国产精品| 五月精品视频| 男人添女荫道口喷水视频| 欧美 日韩 国产 一区| 久久av综合网| 亚洲国产网站| 能看的毛片网站| 蜜臀国产一区二区三区在线播放| 午夜视频在线免费看| 国产精品888| 亚洲激情 欧美| 99精品欧美一区二区三区小说| 能免费看av的网站| 亚洲国产精品黑人久久久| 黄色片子在线观看| 一区二区三区四区av| 99热在线观看免费精品| 欧美午夜精品久久久久久久| 怡红院男人天堂| 在线播放一区二区三区| 波多野结衣在线| 伊人伊成久久人综合网站| 亚洲s色大片| 国模视频一区二区三区| 麻豆视频在线看| 成人久久久久爱| 欧美大奶一区二区| 亚洲欧美久久234| 影音先锋日韩在线| 久久九九国产视频| 久久国产精品无码网站| 成人一区二区三区仙踪林| 久久久精品黄色| 国产一级片免费| 日本精品一区二区三区高清| 精品国产av 无码一区二区三区| 欧美成人a∨高清免费观看| 久草在线网址| 97在线看福利| 99欧美精品| 久久久99爱| 亚洲激情五月| 免费一级特黄毛片| 国产综合色产在线精品| 亚洲av综合一区二区| 亚洲私人影院在线观看| 无码人妻av一区二区三区波多野 | 精品国产亚洲一区二区在线观看 | 国产精品黄网站| 亚洲成人午夜在线| 亚久久调教视频| 婷婷五月精品中文字幕| 中文字幕av一区 二区| 国产区一区二区三| 欧美一区二区视频在线观看| 福利片在线观看| 日本精品中文字幕| 久久伦理中文字幕| 992tv成人免费观看| 久久久久国内| 性感美女一区二区三区| 亚洲欧洲综合另类在线| 伊人网视频在线| 亚洲人成电影网站| 懂色av一区| 国精产品一区二区| 韩日欧美一区| 中文字幕天堂网| 亚洲美女免费在线| 国内老熟妇对白xxxxhd| 亚洲精品国产福利| 日本在线啊啊| 精品视频一区二区| 欧美日韩国产探花| 亚洲性图第一页| 2024国产精品视频| 国产三级理论片| 亚洲跨种族黑人xxx| 美足av综合网| 国产私拍一区| 亚洲黄色视屏| 免费观看a级片| 日本韩国一区二区| 人人九九精品| 久久久久久欧美|