使用jquery来修改modfiy.css的高度或宽度,取决于哪个更大

使用jquery来修改modfiy.css的高度或宽度,取决于哪个更大,jquery,css,height,width,Jquery,Css,Height,Width,我对jquery和html基本上是新手,我正在构建一个图库网页。此网页的工作原理是将选定图像设置为页面背景,然后根据鼠标指针的垂直位置沿图像垂直滚动。这对高过宽的图像效果很好,但我的很多图像都比它们都宽,所以我也需要它以另一种方式工作,如果图像比例需要,可以从左向右滚动 我试图使用if,else-if语句来确定在.css中是否将高度或宽度设置为100%。以下是我尝试使用的代码,它不起作用: $('<img class="fp_preview"/>').load(function()

我对jquery和html基本上是新手,我正在构建一个图库网页。此网页的工作原理是将选定图像设置为页面背景,然后根据鼠标指针的垂直位置沿图像垂直滚动。这对高过宽的图像效果很好,但我的很多图像都比它们都宽,所以我也需要它以另一种方式工作,如果图像比例需要,可以从左向右滚动

我试图使用if,else-if语句来确定在.css中是否将高度或宽度设置为100%。以下是我尝试使用的代码,它不起作用:

$('<img class="fp_preview"/>').load(function() {
    var $newimg = $(this);
    var $currImage = $('#fp_gallery').children('img:first');
    if (newimg.width() > newimage.height()) {
        jQuery('#fp_preview').css({
            height: "100%",
            width: ""
        });
    }
    else if (newimg.height() > newimage.width()) {
        jQuery('#fp_preview').css({
            height: "",
            width: "100%"
        });

    }
    $newimg.insertBefore($currImage);
    $loader.hide();
提前谢谢。此外,这是基于本codrops教程: 尝试使用

img.fp_preview{
position:absolute;
left:0px;
top:0px;
width:0%;  /*if the image is taller than it is wide, make this 100%*/
height:0%; /*if the image is wider than it is tall, make this 100%*/
}
而不是

if($newimg.width() > $newimage.height())
此处的$符号与PHP或JQuery标识符中的符号不同。$此处为常规字符串,因此$newimg和newimg是两个不同的变量。

尝试使用

img.fp_preview{
position:absolute;
left:0px;
top:0px;
width:0%;  /*if the image is taller than it is wide, make this 100%*/
height:0%; /*if the image is wider than it is tall, make this 100%*/
}
而不是

if($newimg.width() > $newimage.height())

此处的$符号与PHP或JQuery标识符中的符号不同。$这里是一个常规字符串,因此$newimg和newimg是两个不同的变量。

我知道距离前面的答案已经有很长一段时间了,但我确实成功地实现了这一点

if(newimg.width()>newimage.height())

我知道这是一个很长的时间,因为以前的答案,但我确实设法让这个工作

if(newimg.width()>newimage.height())

关于这个if语句的某些内容是阻止它完成加载。。。每当我添加if语句时,它都会调出加载图标,但随后似乎停止了。我尝试过的if语句的每一个变体都是如此。。。。美元到底是怎么回事?这意味着什么?(就像我说的,这是一个非常新的问题)我怀疑的是将CSS宽度和高度设置为0%会使.width()和.height()始终返回0。表示不执行任何if语句。尝试用>=表示一个if语句,或者删除第二个if语句,只留下elseno。仍然存在图像未加载的问题。。另外,现在我将它们留空,而不是将它们设置为0%。我找到了一种方法,使这项工作更接近我想要的,它只是在两个方向滚动,而不是一个方向。。。如果可能的话,我希望它只向一个方向滚动。makeScrollable函数如何?@Ergec function makeScrollable(){$(document).bind('mousemove',function(e){var hidden=$(document).height();var hiddenX=$(document.width()-$(window.width();var top=(e.pageY/$(window.height())*hidden;var left=(e.pageX/$(window.height())*hiddenX;$(document.scrollTop(top);$(document.scrollLeft(left);});}这并没有产生平滑的滚动,我想它会…关于这个if语句的一些东西是阻止它完成加载…每当我添加if语句时,它就会拉出加载图标,但随后似乎就停止了。我尝试过的if语句的每一个变体都在这样做…$an的处理方法是什么是吗?这意味着什么?(就像我说的,在这方面非常新)我怀疑的是将CSS宽度和高度设置为0%会使.width()和.height()变为0%始终返回0。表示所有if语句均不执行。请尝试使用>=生成一个if语句,或者删除第二个if语句,只留下elseno luck。遗憾的是,图像未加载仍然存在问题。此外,目前我将它们保留为空,而不是将它们设置为0%。我找到了一种方法,使其更接近我想要的效果,这只是向两个方向滚动,而不是一个方向滚动…我希望它尽可能只向一个方向滚动。makeScrollable函数如何?@Ergec function makeScrollable(){$(document).bind('mousemove',function(e){var hiddenY=$(document).height()-$(window).height();var hiddenX=$(document).width()-$(window).width();var-top=(e.pageY/$(window.height())*hidden;var-left=(e.pageX/$(window.height())*hiddenX;$(document.scrollTop(top);$(document.scrollLeft(left););}这不会产生平滑的滚动效果,但我认为它会。。。