24h購物| | PChome| 登入
2023-02-10 08:44:03| 人氣16| 回應0 | 上一篇 | 下一篇

CSS+JQUERY 靠山圖滿版的做法

推薦 0 收藏 0 轉貼0 訂閱站台


jQuery
 

  1. <style>
  2.         html {
  3.             height: 100%;
  4.         }
  5.         
  6.         body {
  7.             background-image: url(background.jpg);
  8.             background-repeat: no-repeat;
  9.             background-attachment: fixed;
  10.             background-position: center;
  11.             background-size: cover;
  12.         }
  13.     </style>
複製代碼
  1. <body>
  2.     <img src="bg.jpg" id="bg-img">
  3. </body>
  4. <style>
  5.         #bg-img {
  6.             position: fixed;
  7.             top: 50%;
  8.             left: 50%;
  9.             z-index: -99;
  10.         }
  11.     </style>
複製代碼



文章起原


利用這個方式我們可以行使background-position指定圖片縮放的中心點。以上面的程式碼為例:背景圖片會置中對齊,並以圖片中間為縮放的中間點。

若但願圖片靠左下對齊,以左下角為縮放的中間點可以設置成:

   background-position: left bottom;
另外一個純真利用css的方式:

先創設一個區塊填滿瀏覽器視窗,在區塊內放入一張圖片,讓這個圖片保持在完全籠蓋全部區塊的狀況下。

markup

 


上面這個例子只能讓圖片靠上對齊,並以上方作為縮放的中間點。
如果非常對峙要以圖片中間作為縮放的中間點,就要加上jQuery 調劑一下

CSS + jQuery

  1. <script>
  2.     $(function () {
  3.  
  4.         resize_tab();
  5.     });
  6.  
  7.     $(window).resize(function () {
  8.         resize_tab();
  9.     }).resize();
  10.  
  11.     function resize_tab() {
  12.  
  13.         var viewportWidth = $(window).innerWidth();
  14.         var viewportHeight = $(window).innerHeight();
  15.  
  16.         var width = $('#bg-img').width();
  17.         var height = $('#bg-img').height();
  18.  
  19.  
  20.         if ((viewportWidth / viewportHeight) > (width / height)) {
  21.  
  22.             $('#bg-img').css({
  23.                 'width': '100%',
  24.                 'height': 'auto',
  25.                 'margin-left': 0 - width / 2,
  26.                 'margin-top': 0 - height / 2
  27.             });
  28.  
  29.  
  30.         } else {
  31.             $('#bg-img').css({
  32.                 'width': 'auto',
  33.                 'height': '100%',
  34.                 'margin-left': 0 - width / 2,
  35.                 'margin-top': 0 - height / 2
  36.             });
  37.         }
  38.     }
  39. </script>
複製代碼

今天我們要跟人人分享幾個製作滿版配景圖的方式。

此刻先來肯定一下我們的需求:

圖片必需恰好填滿瀏覽器不能留有縫細,也不克不及因為圖片太大而泛起捲軸。
圖片可以跟著瀏覽器尺寸主動縮放。
圖片必須連結長寬比,不能變形。
要告竣上面的需求,我們有以下的方式可以使用


利用CSS3 background-size 屬性

background-size 是css3 的屬性,用來界說配景圖片的尺寸。使用上可以直接指定長寬的數值或是縮放的比例;指定"contain"可讓靠山圖片主動縮放到填滿內容區域內的最大尺寸;指定"cover"可以讓背景圖片主動縮放到籠蓋內容區域的最小尺寸。可以參考w3c background-size的資訊

因為我們而今要做的是完整覆蓋瀏覽器的佈景圖片,所以要利用”background-size:cover;”這個設定。利用方法以下:

 

  1. <style>
  2.         .bg {
  3.             position: fixed;
  4.             top: 0;
  5.             left: 0;
  6.             bottom: 0;
  7.             right: 0;
  8.             z-index: -999;
  9.         }
  10.         .bg img {
  11.             min-height: 100%;
  12.             min-width: 1000px;
  13.             width: 100%;
  14.         }
  15.  
  16.         @media screen and (max-width: 1000px) {
  17.             img.bg {
  18.                 left: 50%;
  19.                 margin-left: -500px;
  20.             }
  21.         }
  22.     </style>
複製代碼


現實操作以後我們會發現,當瀏覽器的寬度小於配景圖片原始的寬度時,背景圖片會有變形的情形産生,因為我們要加上min-width: 1000px;來限制配景圖片縮小的比例。個中1000px是後臺圖片的原始寬度



別的,為了要確定配景圖中的扭轉木馬可以呈現在畫面中,我們還要再做一些調整。將背景圖片程度置中,點竄以後的CSS以下:
 

1.jpg

  1. <style>
  2.         .bg {
  3.             position: fixed;
  4.             top: 0;
  5.             left: 0;
  6.             bottom: 0;
  7.             right: 0;
  8.             z-index: -999;
  9.         }
  10.         .bg img {
  11.             min-height: 100%;
  12.             width: 100%;
  13.         }
  14.     </style>
複製代碼


css
 

  1. <body>
  2.     <div class="bg">
  3.         <img src="background.jpg">
  4.     </div>
  5. </body>
複製代碼
網站架設

以下內文出自:

台長: vaughngpc4
人氣(16) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 攝影寫真(作品、技術、器材) | 個人分類: NetYea |
此分類下一篇:帶排序功能的js masonry瀑布流插件
此分類上一篇:在 Arduino IDE 上面安裝 ESP32

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文