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

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

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

 

 轉載藍藍設計(  m.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://m.ocunn.cn

存檔

美女mm1313爽爽久久久蜜臀| 久久久久久久久久久久久久久| 日本wwww色| av在线网站观看| 免费在线一区二区三区| 97人妻一区二区精品视频| 国产高潮流白浆喷水视频| 一区二区电影网| 怡红院红怡院欧美aⅴ怡春院| 欧美艳星kaydenkross| 日韩在线成人| 亚洲精品99| 久久成人精品无人区| 久久久久九九视频| 精品高清美女精品国产区| 欧美日韩国产综合久久| 亚洲天堂久久av| 欧美一级片在线播放| 豆国产97在线| 日韩专区第三页| 三大队在线观看| 真实国产乱子伦对白在线| 在线观看黄色国产| 酒色婷婷桃色成人免费av网| 密臀av在线播放| 成人黄色av网址| 好吊一区二区三区| 波多野结衣中文字幕一区| 亚洲美女区一区| 精品美女一区二区| 97视频在线免费观看| 国产一区二区三区高清视频| 国产精彩视频一区二区| 成人免费看片载| 懂色av.com| 少妇喷水在线观看| 免费看电影在线| 色愁久久久久久| 翔田千里一区二区| 久久亚区不卡日本| 欧美在线free| 久久av在线播放| 韩国成人av| 国产第一页视频| 免费成人深夜蜜桃视频| 国产精品久久久久久久免费看| 国产精品一区二区婷婷| 欧美日韩尤物久久| 欧美日韩影院| 国产亚洲女人久久久久毛片| 欧美日韩大陆一区二区| 欧美精品videosex牲欧美| 精品国产免费一区二区三区 | 一区二区成人在线视频| 亚洲精品国产拍免费91在线| 国产精品99久久久久久人| 中文字幕一区二区三区四区五区人| 性生交大片免费看l| 人人草在线观看| 91社区在线高清| 国产精品一线| 欧美a级理论片| 亚洲一区二区精品久久av| 亚洲色图色老头| 成人91视频| 色播五月激情五月| 国产九色在线播放九色| 最近高清中文在线字幕在线观看| 一区二区视频| 国产美女精品在线| 色婷婷精品大视频在线蜜桃视频| 欧美成人精品一区二区| 四虎永久国产精品| 精品人妻一区二区三区香蕉| 国产日韩精品suv| 国产无遮挡裸体视频在线观看| 成人精品影视| 久久久久久久国产精品影院| 亚洲精品在线免费观看视频| 7777奇米亚洲综合久久| 日本在线一二三区| 少妇又紧又色又爽又刺激视频 | 懂色av影视一区二区三区| 欧美成人午夜激情在线| 亚洲精品欧洲精品| 蜜桃久久精品成人无码av| 922tv免费观看在线| 国产精品视频一区视频二区| 精品一区二区三区影院在线午夜| 91国内精品野花午夜精品| 97av在线影院| 欧美丰满熟妇bbbbbb百度| 国产精品1000| 日本在线视频www鲁啊鲁| 一个色综合网| 综合欧美亚洲日本| 欧美成人手机在线| 99久久久精品视频| 欧美日韩国产精品一区二区三区| 日本中文字幕在线2020| 97久久夜色精品国产| 国产精品久久久久久久久久久免费看 | 不卡av中文字幕| 亚洲成a人片777777久久| 韩国欧美一区二区| 欧美一级理论片| 91九色露脸| 亚洲av成人精品一区二区三区 | 国产精品热久久久久夜色精品三区| 亚洲男人7777| 伊人色综合影院| 劲爆欧美第一页| 欧美人与禽性xxxxx杂性| 亚洲黄页一区| 在线视频中文字幕一区二区| 国产精品久久综合av爱欲tv| 91 视频免费观看| 亚洲精品成av人片天堂无码| 亚洲一二av| 91蝌蚪porny| 最近免费中文字幕视频2019| 在线观看污视频| 99久热在线精品996热是什么| 免费在线观看的电影网站| 国产日韩欧美| 欧美精品国产精品| 久久久人人爽| 欧美成人精品一区二区免费看片 | 国产女人水真多18毛片18精品视频 | 午夜亚洲福利| 色美美综合视频| 亚洲影院色无极综合| 好吊日免费视频| 91福利在线视频| 99精品视频免费| 欧美一区二区三区在线观看| 国产专区一区二区| 日本美女黄色一级片| 色黄网站在线观看| 免费高清视频精品| 日韩风俗一区 二区| www.午夜色| 亚洲影院在线播放| 精品视频一区二区三区在线观看 | 91精品国产91热久久久做人人 | 中文字幕制服丝袜| 搞黄视频免费在线观看| 亚洲青色在线| 精品国产伦理网| 好吊色视频988gao在线观看| 中文字幕自拍偷拍| 欧美激情极品| 亚洲制服丝袜av| 91亚洲永久免费精品| 亚洲不卡的av| 伊人成综合网站| 懂色av一区二区三区免费观看| 日韩视频免费观看| 男生操女生视频在线观看| 首播影院在线观看免费观看电视| 1024精品久久久久久久久| 91麻豆精品久久久久蜜臀| 四虎影院一区二区三区 | 日韩av在线播放资源| 国产中文字幕乱人伦在线观看| 99国产成人精品| 欧美性感美女一区二区| 91福利在线导航| 日韩动漫在线观看| 中文字幕av网站| 久久av综合| 欧美性猛片xxxx免费看久爱| 亚洲欧美国产精品桃花| 在线观看国产黄| 成人情趣视频| 欧美日韩精品综合在线| 99热一区二区三区| www日本视频| 激情欧美日韩| 亚洲欧美另类人妖| www.色就是色.com| 动漫一区在线| 99免费精品在线| 国产成人av在线| 亚洲综合久久av一区二区三区| 成人黄页网站视频| 亚洲免费观看高清完整版在线| 96精品久久久久中文字幕| 久久av高潮av无码av喷吹| 中文字幕一区二区三区四区久久| 婷婷一区二区三区| 神马影院一区二区三区| 国产毛片久久久久| 国产精品hd| 亚洲欧美中文日韩v在线观看| 婷婷免费在线观看| 伊人精品影院| 久久欧美一区二区| 5g国产欧美日韩视频| 亚洲午夜18毛片在线看| 欧美一二区在线观看| 日韩一级大片在线观看| 欧美 日本 亚洲| 99re在线视频| 99久久精品免费看国产| 成人日韩在线电影| 欧美a视频在线观看| 久久神马影院| 亚洲精品自拍视频| 黄页网站在线看| 亚洲黄色网址| 一区二区欧美视频| 一区二区精品在线| 最新在线你懂的| 国产一区二区精品久久91| 国产精品成人久久久久| 日本在线视频免费| 色中色综合网| 国产午夜精品免费一区二区三区| 国产a级黄色片| av激情成人网| 欧美日韩一区二区免费视频| 拔插拔插海外华人免费| aaa在线观看| 国产三级一区二区| 欧美在线视频一区二区三区| 少妇人妻一区二区| 国产在线麻豆精品观看| 国产欧美日韩最新| 波多野结衣在线观看一区| 欧美88av| 欧美激情网站在线观看| 青花影视在线观看免费高清| 精品不卡一区| 中文国产亚洲喷潮| 国产性猛交xx乱| 久操成人av| 亚洲天堂av电影| 亚洲黄色网址大全| 极品美女一区二区三区| 国产午夜精品全部视频在线播放 | 亚洲精品二区| 国产永久免费高清在线观看视频| 99国产欧美另类久久久精品| 精品欧美一区二区精品久久| 中国国产一级毛片| 91丝袜呻吟高潮美腿白嫩在线观看| 成人黄色在线免费观看| 日韩一级片免费看| 不卡电影一区二区三区| 日本三级中国三级99人妇网站| 色播色播色播色播色播在线| 国产性色一区二区| 中文字幕中文字幕99| 午夜激情在线观看| 亚洲国产视频一区二区| 99福利在线观看| 亚洲第一二三四区| 欧美一级一级性生活免费录像| 18深夜在线观看免费视频| 超碰在线成人| 中文字幕少妇一区二区三区| 久久网中文字幕| 国产精品久久777777毛茸茸| 国产精品日韩电影| 亚洲精品免费在线观看视频 | 人妻av无码专区| 91丝袜在线| 欧美日韩国产经典色站一区二区三区| 无码国产精品一区二区高潮| 国产香蕉精品| xxxxx91麻豆| 国产午夜性春猛交ⅹxxx| 三级一区在线视频先锋| 114国产精品久久免费观看| 情趣网站视频在线观看| 国产欧美日韩不卡免费| 国产玉足脚交久久欧美| 激情开心成人网| 精品国产免费视频| jizzjizzjizz国产| 1024日韩| 亚洲自拍偷拍第一页| 亚洲私人影吧| 亚洲免费高清视频在线| 少妇一级淫免费放| 成人中文字幕视频| 久久久精品电影| 亚洲一区二区三区高清视频| 丁香桃色午夜亚洲一区二区三区| 色噜噜狠狠一区二区三区| 欧美videossex| 日韩一区二区三区三四区视频在线观看| 高潮毛片无遮挡| 欧美激情五月| 91九色对白| 欧美成人三区| 欧美美女网站色| 美国一级黄色录像| 99在线观看免费视频精品观看| 91在线观看免费高清| 每日更新在线观看av| 欧美性极品xxxx娇小| 日本黄色动态图| 欧美全黄视频| 国产女主播一区二区| 国产三级在线播放| 69久久99精品久久久久婷婷| 国产白丝一区二区三区 | 全球最大av网站久久| 伊人久久久久久久久久| 国产三级精品三级在线观看| 懂色av噜噜一区二区三区av| 蜜桃视频一区二区在线观看| 日韩网站中文字幕| 最近更新的2019中文字幕| 国产精品久久久久久免费播放| 欧美韩国一区二区| 亚洲综合av在线播放| 成人高清av| 亚洲伊人一本大道中文字幕| 黄色网页网址在线免费| 日韩三级av在线播放| 国产女同在线观看| 99久久免费国产| 欧美精品第三页| 国产区精品区| 91网站在线看| wwww亚洲| 亚洲午夜av久久乱码| 国产精品人人妻人人爽| 中文字幕一区二区视频| 中国极品少妇xxxx| 中文日韩欧美| 自拍亚洲欧美老师丝袜| 精品久久国产一区| 18性欧美xxxⅹ性满足| 亚洲精品视频区| 欧美男男青年gay1069videost| 精品肉丝脚一区二区三区| av午夜一区麻豆| 爱情岛论坛成人| 五月天综合网站| 久久久精品有限公司| 成人在线网站| 久久久久久久久91| 污网站免费在线观看| 欧美丰满一区二区免费视频| 一区二区三区视频免费看| 国产亚洲一区字幕| 337p日本欧洲亚洲大胆张筱雨| 伊人精品成人久久综合软件| 亚洲不卡中文字幕| 欧美jizz18| 欧洲亚洲免费视频| 国产一二三区在线观看| 亚洲天堂男人天堂| 亚洲 欧美 精品| 91精品黄色片免费大全| 中文字幕精品无| 亚洲一区二区三区在线播放| 国产视频123区| av资源网一区| 美女流白浆视频| 麻豆久久久久久| 午夜dv内射一区二区| 午夜国产欧美理论在线播放| 在线电影看在线一区二区三区| 美女视频亚洲色图| 国产精品有限公司| 96sao精品免费视频观看| 国产a级全部精品| 538在线视频| 欧美精品第一页在线播放| av黄色在线观看| 在线看日韩欧美| 香蕉av一区| 精品亚洲一区二区| 无码国产精品一区二区色情男同| 欧美日韩高清不卡| 国产毛片毛片毛片毛片| 欧美久久一二三四区| 91精东传媒理伦片在线观看| 色婷婷狠狠综合| 亚洲精品国产无码| 色综合久久中文字幕| 国偷自拍第113页| 亚洲v精品v日韩v欧美v专区| 中日韩精品视频在线观看| 一区二区三区四区av| 日韩av在线播放观看| 亚洲午夜私人影院| 日韩免费视频一区二区视频在线观看| 亚洲九九爱视频| 日韩三级av在线| 亚洲成人久久影院| 欧美性猛交bbbbb精品| 一本一道综合狠狠老| japanese国产在线观看| 欧美在线一二三|