Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery resize()和css@media_Jquery_Css - Fatal编程技术网

jquery resize()和css@media

jquery resize()和css@media,jquery,css,Jquery,Css,我希望有可调整大小的视频后805px宽度的具体元素。在此之前,我通过css@media控制视频的大小。当从最大值调整到最小值时,一切都正常工作,但通过反之亦然,视频的高度和宽度不再来自css。我对你期望太高了吗 我有以下代码: $(window).resize(function() { var newWidth = $fluidEl.width(); var windowWidth = $(window).width(); if(windowWidth < 805

我希望有可调整大小的视频后805px宽度的具体元素。在此之前,我通过css@media控制视频的大小。当从最大值调整到最小值时,一切都正常工作,但通过反之亦然,视频的高度和宽度不再来自css。我对你期望太高了吗

我有以下代码:

$(window).resize(function() {
    var newWidth = $fluidEl.width();
    var windowWidth = $(window).width();

    if(windowWidth < 805) {
        // Resize all videos according to aspect ratio
        $allVideos.each(function() {

            var $el = $(this);
            $el
                .width(newWidth)
                .height(newWidth * 0.7129629629629629);
        });
    }
})

设置尺寸后,它们将位于视频元素的
样式
属性中。
style
属性中的CSS比媒体查询中的CSS具有更高的优先级

要解决此问题,请确保在您希望返回媒体查询时,立即使用JavaScript删除维度:

$(window).resize(function() {
    var newWidth = $fluidEl.width();
    var windowWidth = $(window).width();

    if(windowWidth < 805) {
        // Resize all videos according to aspect ratio
        $allVideos.each(function() {

            var $el = $(this);
            $el
                .width(newWidth)
                .height(newWidth * 0.7129629629629629);
        });
    } else {
        $allVideos.css({width:"",height:""});
    }
})
$(窗口)。调整大小(函数(){
var newWidth=$fluidEl.width();
var windowWidth=$(window.width();
如果(窗宽<805){
//根据纵横比调整所有视频的大小
$allVideos.each(函数(){
var$el=$(本);
$el
.宽度(新宽度)
.高度(新宽度*0.7129629629629629);
});
}否则{
$allVideos.css({宽度:,高度:});
}
})
$el.removeAttr('style');在else上完成了这个技巧,这与您的解决方案相同。是的,
removeAttr('style')
也解决了这个问题。但是,只要您通过javascript(例如视频周围的边框)添加其他样式属性,它也会在调整大小时被删除。使用
.css()
可以指定要取消设置的样式属性。
$(window).resize(function() {
    var newWidth = $fluidEl.width();
    var windowWidth = $(window).width();

    if(windowWidth < 805) {
        // Resize all videos according to aspect ratio
        $allVideos.each(function() {

            var $el = $(this);
            $el
                .width(newWidth)
                .height(newWidth * 0.7129629629629629);
        });
    } else {
        $allVideos.css({width:"",height:""});
    }
})