如何将jQuery中的width参数更改为百分比?

时间:2011-09-20 22:12:56

标签: javascript jquery

我正在使用自定义滚动div jQuery插件。我希望div填充其父级宽度的100%,以根据浏览器窗口大小更改大小。

该脚本采用给定的width参数,并在整个脚本中使用它。脚本的可自定义参数似乎只允许我以像素为单位指定width

$.fn.hoverscroll.params = {

vertical:   false,      // Display the list vertically or not
width:      1280,        // Width of the list
height:     230,         // Height of the list
arrows:     true,       // Display arrows to the left and top or the top and bottom
arrowsOpacity:  0.4,    // Maximum opacity of the arrows if fixedArrows
fixedArrows: false,     // Fix the displayed arrows to the side of the list
rtl:        false,      // Set display mode to "Right to Left"
debug:      false       // Display some debugging information in firebug console

};

我尝试引用百分比'100%',但这不起作用。有没有办法在这里使用百分比?

如果没有,有没有办法使用类似下面的脚本,它确定窗口的宽度,使脚本输出宽度(以像素为单位),并使用该整数作为width参数jQuery脚本?

<script type="text/javascript">
    function alertSize() {
    var myWidth = 0;
    if( typeof( window.innerWidth ) == 'number' ) {

    //Non-IE
    myWidth = window.innerWidth;
  } else if( document.documentElement && ( document.documentElement.clientWidth ) ) {

    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth ) ) {

    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
    //window.alert( myWidth );
}
</script>

供参考,这是我正在使用的插件的完整脚本: http://rascarlito.free.fr/hoverscroll/js/hoverscroll/jquery.hoverscroll.js

1 个答案:

答案 0 :(得分:0)

如果你希望hoverscroll区域的宽度在准备好的容器的某个百分比,你总是可以使用jQuery。用ready()表达式包装您的启动例程:

$(document).ready(function() {
   var w = $(window).width();
   var p = 0.95 /* Your percentage */
   $.fn.hoverscroll.params = {
       width:   w * p,   // Width of the list
       ...
   };
   // Start your hoverscroll like normal;
});

...只是表示“其他东西都在这里”。我不想用重复的代码填写答案。

虽然在正常情况下,你永远不会修改默认值,但是将它们作为参数传递:

$(document).ready(function() {
   var w = $(window).width();
   var p = 0.95 /* Your percentage */
   $('#mylist').hoverscroll({
       width:   w * p   // Width of the list
   });
});

请注意,我只是在宽度上传递;其他一切都使用默认值。您只需设置与默认值不同的那些 - 在本例中,我只设置宽度。