2012-01-27 66 views
1

编辑2012年1月27日上午11:32 - 我相信我已修复与此脚本相关的所有问题。我需要将CSS类应用于每个我想要调整大小的图像,具体取决于我想将它左移,右移还是居中,但我可以忍受。请参阅我的最新解释和演示http://evanwebdesign.com/responsive-web-design/example5.htmljQuery - 在动态设置宽度的div中包含图像

编辑2012年1月27日上午10:50 - 此脚本仍存在问题。看到我的评论如下。解决问题。

编辑1/27/12上午9:00:我现在有这个问题差不多完成了。见我的例子在http://www.evanwebdesign.com/responsive-web-design/example3.html和我原来的例子

我目前有根据张贴在http://evanwebdesign.com/responsive-web-design/example.html浏览器窗口的宽度来调整响应图像的例子进行比较。

编辑12-1-16:我已经作出了更详细的例子(希望),使我的问题更容易在http://evanwebdesign.com/responsive-web-design/example2.html

理解,但假设我有我的#内容专区内多张图片?假设它们都是不同的宽度?我不想手动计算宽度值,并为所有图像创建封闭的自定义类的div!

相反,我想写一个jQuery脚本,将做到以下几点:在#内容股利

    • 经过的所有图像获取每个图像的宽度(我知道我需要使用$(window).load(),否则我会用图像值0结束)

    • 以像素为单位取图像的宽度并将其除以900.(900是任意最大宽度pad后面的#content div的像素值已应用。)

    • 将上一步创建的这个新数字作为百分比应用于图像周围新的包含div的宽度。

    我们的目标是动态创建.home_photo格为#内容专区内的每个图像。我不在乎CSS是否内联写入,因为标记永远不会出现在HTML中。

    请让我知道这个问题是否清楚,或者如果有什么我可以做的更好地解释我自己。我知道这个问题涉及很多步骤。

    在此先感谢大家的帮助!

  • +0

    我不是jQuery高手,所以我得到了图像的宽度并将其作为alert()发布。 '$(窗口).load( \t \t \t功能(){ \t \t \t \t警报($(home_photo).WIDTH()); \t \t \t} \t \t);' – Evster 2012-01-27 04:48:11

    +0

    为了什么这是值得的...我不完全理解这个例子中的代码,但我认为这与我试图实现的类似:[http://stackoverflow.com/questions/8723170/jquery-dynamic-image -resize] – Evster 2012-01-27 05:23:14

    回答

    0

    我认为你可以用CSS这样做只是

    <style> 
        .home_photo img 
        { 
         width:900px; 
        } 
    </style> 
    

    让我知道如果我误解smthing

    编辑

    我认为这将这样的伎俩

    $(function(){ 
        $(window).resize(function(){ 
         $("#container img").each(function(){ 
         if($("#content").width() < $(this).width()) 
         { 
          $(this).width($("#content").width()); 
         } 
         }); 
        }); 
    }); 
    
    +0

    这不完全是。为了使图像在以1024分辨率或更高分辨率查看网站时以其原始大小显示,图像的包含元素需要具有手动设置的唯一宽度。将这个CSS规则添加到这个示例中,但是如果我要添加一个宽度不同的第二个图像,我需要为它创建一个新的CSS类(如.home_photo),但是宽度的值不同。对不起,如果这是令人困惑,并感谢您的帮助! – Evster 2012-01-27 05:11:24

    +0

    对不起,我仍然没有得到它,你可以在你的例子中添加什么想要的图像。我会尝试使用JavaScript自动执行。 – alex 2012-01-27 05:20:42

    +0

    感谢您的尝试。我在http://evanwebdesign.com/responsive-web-design/example2.html上发布了一个更详细的例子,我想要做的事情 – Evster 2012-01-27 05:45:14

    1

    据我了解,你想包装每个图像的div将根据图像的原始大小相对于主#content div进行大小调整。

    这应该做的伎俩:

    $(document).ready(function() { 
        var contentWidth = $('#content').width(); 
        $("#container img").each(function(){ 
         var ratio = $(this).width()/contentWidth; 
         $(this).wrap("<div style='width:"+ratio+"'></div>"); 
    }); 
    

    你提到window.load - $(文件)。就绪是一个更好的版本,因为它执行DOM被加载后立即,而不是等待与jQuery使用为要加载的页面上的所有资源(包括图片)。

    +0

    在代码依赖于加载的资产的情况下(例如,如果图像是必需的),代码应该放在负载事件的处理程序中。 --Jery.ready页面 – 2012-01-27 08:45:31

    +0

    @ Joel.d你是男人!你写的是_close_,但是我需要做一些修改才能使它工作。其中之一是大卫理查德提到的必要窗口。另一个是向jQuery生成的div的内联CSS添加“%”。最后,我必须通过jQuery为每张图片指定100%的宽度,因为当我使用CSS编码时,它无法工作。请参阅我的新示例http://www.evanwebdesign.com/responsive-web-design/example3.html – Evster 2012-01-27 16:37:46

    +0

    我意识到这个新示例存在问题。当页面加载到尺寸较小的屏幕上时,图像以其原始像素大小开始。我正在研究解决方案。 – Evster 2012-01-27 18:51:12

    相关问题