Javascript 使用jQuery CSS属性将图像居中

Javascript 使用jQuery CSS属性将图像居中,javascript,jquery,css,image,Javascript,Jquery,Css,Image,以下是我的网站中的一段普通代码,用于中心图像: <img width="600" alt="Image" src="img-src.jpg" style="width: 600px;" class="center" /> 我正在使用一个中心类的内联样式,中心的css是margin:0 auto;在页面上居中放置图像。我无法为具有中心类的图像设置标准宽度,因为图像的宽度不同 我知道jQuery有一个CSS属性,这让我想到是否可以使用jQuery从图像属性中读取图像宽度并自动插入宽度

以下是我的网站中的一段普通代码,用于中心图像:

<img width="600" alt="Image" src="img-src.jpg" style="width: 600px;"
 class="center" />
我正在使用一个中心类的内联样式,中心的css是margin:0 auto;在页面上居中放置图像。我无法为具有中心类的图像设置标准宽度,因为图像的宽度不同

我知道jQuery有一个CSS属性,这让我想到是否可以使用jQuery从图像属性中读取图像宽度并自动插入宽度:*图像大小从img属性中提取*px;对于任何具有中心类的图像,无需手动设置每个图像的图像宽度


请提供例子,因为我的JS不够流利,无法自己写这篇文章。

使用load来检测图像何时下载。在匿名函数中,为每个对象获取宽度并将其作为css属性应用

$('img').load( function() {
   $(this).css('width', $(this).width());
});

使用load可检测何时下载图像。在匿名函数中,为每个对象获取宽度并将其作为css属性应用

$('img').load( function() {
   $(this).css('width', $(this).width());
});

从img元素中删除内联样式,然后在窗口加载事件中尝试此代码,这将确保加载页面上的所有资源

$(window).load(function(){

    //You can grab the img dimensions as below.
    var width = $('imgSelector').width();
    var height = $('imgSelector').height();

    //Use `css` method to set the styles on the element.
    $('imgSelector').css({
        width: width,
        height: height
    });

    //E.g - this will set the width and height of all the images on the page
    $('img').each(function(){
        $(this).css({
             width: width,
             height: height
        });
    });

});

从img元素中删除内联样式,然后在窗口加载事件中尝试此代码,这将确保加载页面上的所有资源

$(window).load(function(){

    //You can grab the img dimensions as below.
    var width = $('imgSelector').width();
    var height = $('imgSelector').height();

    //Use `css` method to set the styles on the element.
    $('imgSelector').css({
        width: width,
        height: height
    });

    //E.g - this will set the width and height of all the images on the page
    $('img').each(function(){
        $(this).css({
             width: width,
             height: height
        });
    });

});

要执行您要求的操作,您只需执行以下操作:

$("img.center").load(function(){
   var currentImage = $(this);
   currentImage.css("width",currentImage.width()+"px");
});

要执行您要求的操作,您只需执行以下操作:

$("img.center").load(function(){
   var currentImage = $(this);
   currentImage.css("width",currentImage.width()+"px");
});

为图像提供一个带有文本align:center的容器怎么样

下面是一个演示:


CSS解决方案将有助于提高性能。

为图像提供一个文本对齐的容器:中心:

下面是一个演示:


CSS解决方案将有助于提高性能。

此jQuery代码片段将所有.center图像的父级文本对齐CSS属性设置为“居中”,我认为这将在不设置宽度的情况下实现相同的效果:

$('img.center').parent().css('text-align','center');​​​​​​​​​​​​​​​

此jQuery代码段为所有.center图像将父级的text-align CSS属性设置为“中心”,我认为这在不设置宽度的情况下也可以实现相同的效果:

$('img.center').parent().css('text-align','center');​​​​​​​​​​​​​​​
您将看到$img.width,这将使用整数格式提供以像素为单位的宽度,因此如果宽度为width:100px;,这将是100。但为了使其正常工作,每个图像都必须设置width=属性,否则将出现错误且不返回任何值

可查看的两个链接是:

您将看到$img.width,这将使用整数格式提供以像素为单位的宽度,因此如果宽度为width:100px;,这将是100。但为了使其正常工作,每个图像都必须设置width=属性,否则将出现错误且不返回任何值

可查看的两个链接是:


将图像包装在父容器(如div)中,该容器的宽度和高度设置为允许的最大值。然后使用以下jQuery插件将它们集中在div中:


将图像包装在父容器(如div)中,该容器的宽度和高度设置为允许的最大值。然后使用以下jQuery插件将它们集中在div中:

HTML

HTML


确保在加载任何图像之前绑定到这些图像。或者在window.load启动时运行代码,这样您就知道所有图像都可以获得它们的尺寸。正如Jasper提到的,您可以使用window.load,然后使用$'img'绑定。每个函数。。。相反如果您将我的代码放在window.load中,代码将永远不会激发,因为资源已经加载。请确保在加载任何图像之前绑定到它们。或者在window.load启动时运行代码,这样您就知道所有图像都可以获得它们的尺寸。正如Jasper提到的,您可以使用window.load,然后使用$'img'绑定。每个函数。。。相反如果你把我的代码放在一个window.load中,代码将永远不会被触发,因为资源已经被加载了。我尝试了,但是图像太大了!图像的分辨率为350px,渲染速度为950px。思想?想法?没关系-我错过了一些冲突的代码。它起作用了。非常感谢。现在的问题-为什么这适用于图像文本对齐:在上面的格式下居中,如果你将它放在标记中,它就不起作用了?@Lynda你可以为你的图像设置一个最大宽度CSS属性,这样它们只会增长到一个特定的大小。请参见此链接中的摘要:文本对齐不控制块元素本身的对齐,只控制其内联内容。。这就是文本对齐的工作原理。我尝试了一下,结果图像非常大!图像的分辨率为350px,渲染速度为950px。思想?想法?没关系-我错过了一些冲突的代码。它起作用了。非常感谢。现在的问题-为什么这适用于图像文本对齐:在上面的格式下居中,如果你将它放在标记中,它就不起作用了?@Lynda你可以为你的图像设置一个最大宽度CSS属性,这样它们只会增长到一个特定的大小。请参阅此链接中的摘要:文本对齐不控制对齐 删除块元素本身,仅其内联内容。。这就是文本对齐的工作原理。