完全响应背景图像

时间:2013-05-09 23:38:46

标签: jquery css wordpress

我试着了解如何才能完整响应背景图像。 起初我正在使用jQuery Anystretch。

代码。

  

的functions.php

wp_register_script( 'jquery.anystretch', get_template_directory_uri() .'/js/jquery.anystretch.js', array( 'jquery'));
wp_enqueue_script( 'jquery.anystretch');
  

的main.css

.imgheader { background: url("images/image.png")  height:450px; width:100%; background-repeat: no-repeat; background-size: cover; overflow: hidden; position: relative}
  

的index.php

<figure class="container imgheader"> </figure>
  

的header.php

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<?php wp_enqueue_script('jquery'); ?> 
<script type="text/javascript">
jQuery(document).ready(function($)
{
(function() 
{
$('.imgheader').anystretch("images/image.png");
})
});
</script>

另外,我尝试:

   $('figure.imgheader').anystretch("images/image.png");

来自文档:

<script type="text/javascript">
jQuery(document).ready(function($) {
  $('.imgheader').anystretch("images/image.png", {speed: 150});
});
</script>

第3次编辑:

<script type="text/javascript">
jQuery(document).ready(function($) {
  $('figure.imgheader').anystretch("images/image.png", {speed: 150});
});
</script>

第4次更新: 问题与jquery-backstretch相同。我正在加载完整背景图像的插件和容器内的图像,但是没有用。在Firebugs的帮助下,我看到js正在页面中加载。我又看了几个小时,我又回来了。

但问题是一样的,脚本不加载。我做错了什么?

先谢谢。

3 个答案:

答案 0 :(得分:4)

偶然的事情,没有必要排队jquery,它与WordPress核心捆绑在一起,如果你正确设置你的javascript,所有文件都可用。在你的functions.php中,确保将它包装在这样的add动作调用中:

add_action('wp_enqueue_scripts','my_scripts_function');
function my_scripts_function() {
    wp_register_script( 'jquery.anystretch.js', get_template_directory_uri() .'/js/jquery.anystretch.js'); // you don't need the third parameter here
    wp_enqueue_script( 'jquery.anystretch.js');
}

理想情况下,您只需将自己的另一个javascript文件排入队列,而不是放入header.php,但它可以有时这样做。你的问题是我相信的附加功能()包装,看不出任何需要它。

<script type="text/javascript">
jQuery(document).ready(function($) {
    $('.imgheader').anystretch("images/image.png");
});
</script>

如果这不起作用,请确认您尝试运行它们的页面上正在加载jquery和anystretch。

答案 1 :(得分:1)

我不确定这里发生了什么,但是如果你没有这个工作,我可以建议使用jquery backstretch。我自己在项目中使用过几次,总能完成工作。

答案 2 :(得分:1)

我尝试了多种jquery插件,例如jquery.ez-bg-resizejquery.backstretchjquery.anystretch。即使是现在我也想不出为什么js这样做。对于这些插件,js正在加载,但结果是相同的。我的问题没有解决。 然后我想借助css对媒体查询做到这一点,因为这样就可以解决问题。

imgheader { background: url("images/images.png")  50% 50% no-repeat scroll !important;
    background-position:center;
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;