當前位置:首頁>WordPress建站>基礎教程>WordPress使用jQuery 按比例調整圖片高度/寬度

WordPress使用jQuery 按比例調整圖片高度/寬度

同學們,今天我們來談談WordPress主題制作的細節(jié)問題:限制文章中圖片的最大寬度,防止圖片“撐破”頁面,用的比較多的方法是在CSS中使用 overflow:hiddenmax-width:600px 來限制,但是效果不理想,倡萌今天分享一下比較完美的方法: jQuery 按比例調整圖片高度/寬度。

2013-4-14更新:使用?max-width 也是可以按等比縮小圖片的。以前倡萌之所以任務無法實現(xiàn),是因為我自己使用WLW離線發(fā)布時,使用WLW定義了圖片的格式,而沒辦法繼承樣式表的樣式。特此說明,希望大家不要被誤導!

三種方法的效果比較

wpdaxue.com-201210074

從上圖可以看出,overflow 僅僅是隱藏了部分圖片,導致圖片顯示不全;max-width 只是限制的最大寬度,圖片壓縮變形;而jQuery 卻可以等比例調整圖片的高和寬,圖片沒有變形,這就是我們要的效果!

等比例調整圖片的高和寬

方法一:jQuery 代碼(薦)

現(xiàn)在大部分的網(wǎng)站都使用了 jQuery 庫,所以我們只需添加下面的 jQuery 代碼即可實現(xiàn):

$(document).ready(function() {
    $('.post img').each(function() {
    var maxWidth = 600; // 圖片最大寬度
    var maxHeight = 2000;    // 圖片最大高度
    var ratio = 0;  // 縮放比例
    var width = $(this).width();    // 圖片實際寬度
    var height = $(this).height();  // 圖片實際高度

    // 檢查圖片是否超寬
    if(width > maxWidth){
        ratio = maxWidth / width;   // 計算縮放比例
        $(this).css("width", maxWidth); // 設定實際顯示寬度
        height = height * ratio;    // 計算等比例縮放后的高度
        $(this).css("height", height * ratio);  // 設定等比例縮放后的高度
    }

    // 檢查圖片是否超高
    if(height > maxHeight){
        ratio = maxHeight / height; // 計算縮放比例
        $(this).css("height", maxHeight);   // 設定實際顯示高度
        width = width * ratio;    // 計算等比例縮放后的高度
        $(this).css("width", width * ratio);    // 設定等比例縮放后的高度
    }
    });
});

實際使用時,注意修改 $(‘.post img’) 為你文章內容的class值,以及最大寬度、高度。

關于jQuery 庫,請閱讀《WordPress提速:選擇好的jQuery庫(Google/Microsoft/SAE)

方法二:純Javascript代碼

<script type="text/javascript">
function ResizeImage(image, 插圖最大寬度, 插圖最大高度)
{
    if (image.className == "Thumbnail")
    {
        w = image.width;
        h = image.height;

        if( w == 0 || h == 0 )
        {
            image.width = maxwidth;
            image.height = maxheight;
        }
        else if (w > h)
        {
            if (w > maxwidth) image.width = maxwidth;
        }
        else
        {
            if (h > maxheight) image.height = maxheight;
        }

        image.className = "ScaledThumbnail";
    }
}
</script>

實現(xiàn)效果和上面一樣,不需要引用 jQuery 庫,請設置最大高度和寬度值;在發(fā)布文章時,要手動給每張圖片添加一個 class=”Thumbnail”

好了,今天課程到此為止,如果你有更好的方法,歡迎投稿分享!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發(fā)布本站內容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關注WordPress大學公眾號 WPDAXUE
基礎教程

WordPress代碼高亮插件:WP-Syntax

2012-10-11 11:03:38

基礎教程

WordPress自動截取限定數(shù)字的摘要

2012-10-29 5:31:00

17 條回復 A文章作者 M管理員
  1. 這個方法,如果圖片未加載成功遍歷了,有時候得不到寬度高度的

  2. max-width可以等比額,,,而且,,用百分比的話,和jq差不多。,。。

    • WLW發(fā)布文章如果不選擇繼承日志邊框是會變形的

    • 不用wlw。。。

    • 比默認編輯器方便…

    • 還是喜歡wp的編輯器

    • 看樣子你沒用過WLW,,,,

    • 嗯。。。確實沒用過,但是我覺得我用不到

    • WLW是什么?

    • 沒用過。問下,以前發(fā)布的日志,會再同步到本地嗎?

  3. 為什么我用這個方法會失效?

  4. .text a img{max-width:618px;height:auto} 這樣子就可以了 估計校長沒添加height:auto

    • 我現(xiàn)在已經知道問題所在了:我使用了wlw發(fā)布文章時,沒有設置為繼承文章的樣式,而是直接使用wlw格式化了圖片高寬,所以才出現(xiàn)了這樣的問題

  5. 一直在用max-width=600px;并沒有變形啊,控制了最大寬度,高度是等比例縮放的

    • 不知道你的是如何弄,反正我限制最大寬度,是會變形

    • max是不會導致圖片變形的。

  6. 還有一種方法,應該是跟jquery的差不多。

?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

昌宁县| 晋城| 呼和浩特市| 阿城市| 乐至县| 兴业县| 台湾省| 沈阳市| 旺苍县| 陈巴尔虎旗| 沭阳县| 克拉玛依市| 东台市| 黄浦区| 南康市| 新丰县| 牟定县| 绥棱县| 衡阳县| 石阡县| 赫章县| 溆浦县| 墨脱县| 嘉荫县| 浮梁县| 浦东新区| 岳池县| 平遥县| 陕西省| 射洪县| 双城市| 城步| 双牌县| 方正县| 郑州市| 富裕县| 宝兴县| 莱阳市| 新晃| 乐山市| 德州市|