通过JavaScript调整视频大小的问题

通过JavaScript调整视频大小的问题,javascript,wordpress,internet-explorer,Javascript,Wordpress,Internet Explorer,我有一个视频在与一个视频,有时大小适当。这里是它不(主要)的时间/地点 在InternetExplorer或Safari中(JavaScript只是做不到它应该做的事情) 用户第一个会话(在缓存内容之前) 关于硬刷新 下面是我们正在运行的JavaScript。如前所述,它甚至在IE上都不起作用(CSS编辑器中没有调整大小) 感谢您的帮助!如果我遗漏了什么,请告诉我 ;(function($, window, document, undefined) { var $win = $(window);

我有一个视频在与一个视频,有时大小适当。这里是它不(主要)的时间/地点

  • 在InternetExplorer或Safari中(JavaScript只是做不到它应该做的事情)
  • 用户第一个会话(在缓存内容之前)
  • 关于硬刷新
  • 下面是我们正在运行的JavaScript。如前所述,它甚至在IE上都不起作用(CSS编辑器中没有调整大小)

    感谢您的帮助!如果我遗漏了什么,请告诉我

    ;(function($, window, document, undefined) {
    var $win = $(window);
    var $doc = $(document);
    var homeVideoIframe = $('#home-video');
    
    function sliderInit( $slider, params ) {
        if ( $slider.length ) {
            $slider.lightSlider( params );
        }
    }
    
    function initQuotesSlider() {
        let height = 0;
    
        $('#homepageSlider > li').each((e, i) => {
            height = $(i).height();
        });
    }
    
    function adjustHomeVideoSize() {
        var width = homeVideoIframe.width();
        var height = width / 1.78;
        homeVideoIframe.height(height);
    };
    
    $doc.on( 'ready', function () {
        adjustHomeVideoSize();
    });
    
    $win.on('resize', function () {
        adjustHomeVideoSize();
    });
    
    
    $win.on( 'scroll, resize', function() {
        $( 'body' ).addClass( 'loaded' );
        initQuotesSlider();
    
        var testimonialSliderParam = {
            addClass: "quotes-slider",
            controls: false,
            slideMargin: 70,
            adaptiveHeight: true,
            vertical: false,
            autoWidth: true,
            pager: false,
            item: 4,
            onSliderLoad: function() {
                $('#homepageSlider').removeClass('cS-hidden');
            }
        };
    
        var $homepageTetimonialsSlider = $('#homepageSlider');
    
        if ( $win.width() > 1200 ) {
            testimonialSliderParam.items = 1;
        }
    
        sliderInit( $homepageTetimonialsSlider, testimonialSliderParam );
    });
    
    $win.on( 'load', function() {
        $( 'body' ).addClass( 'loaded' );
    
        initQuotesSlider();
    
        var productSliderParam = {
            controls: false,
            slideMargin: 0,
            item:1,
            addClass: "products-slider"
        }
        var $productSlider = $("#productsSlider");
    
        sliderInit( $productSlider, productSliderParam );
    
        $('#productsNext').click(() => {
            $productSlider.goToNextSlide();
        });
    
        $('#productsPrev').click(() => {
            $productSlider.goToPrevSlide();
        });
    
        var testimonialSliderParam = {
            addClass: "quotes-slider",
            controls: false,
            slideMargin: 70,
            adaptiveHeight: true,
            vertical: false,
            autoWidth: true,
            pager: false,
            item: 4,
            onSliderLoad: function() {
                $('#homepageSlider').removeClass('cS-hidden');
            }
        };
    
        var $homepageTetimonialsSlider = $('#homepageSlider');
    
        if ( $win.width() > 1200 ) {
            testimonialSliderParam.items = 1;
        }
    
        sliderInit( $homepageTetimonialsSlider, testimonialSliderParam );
    
    } );
    
    })(jQuery, window, document);
    

    这是我发现的一个答案,它似乎起到了作用。我们将CSS与之结合使用,作为一种后备方案,它的工作非常出色

    // Find all YouTube videos
    var $allVideos = $("iframe[src^='//player.vimeo.com'], 
    iframe[src^='//www.youtube.com']"),
    
    
    // The element that is fluid width
    $fluidEl = $("body");
    
    // Figure out and save aspect ratio for each video
    $allVideos.each(function() {
    
    $(this)
    .data('aspectRatio', this.height / this.width)
    
    // and remove the hard coded width/height
    .removeAttr('height')
    .removeAttr('width');
    
    });
    
    // When the window is resized
    $(window).resize(function() {
    
    var newWidth = $fluidEl.width();
    
    // Resize all videos according to their own aspect ratio
    $allVideos.each(function() {
    
    var $el = $(this);
    $el
      .width(newWidth)
      .height(newWidth * $el.data('aspectRatio'));
    
    });
    
    // Kick off one resize to fix all videos on page load
    }).resize();
    
    以下是CSS解决方案:

    <div class="videoWrapper">
    <!-- Copy & Pasted from YouTube -->
    <iframe width="560" height="349" src="http://www.youtube.com/embed/n_dZNLr2cME?rel=0&hd=1" frameborder="0" allowfullscreen></iframe>
    </div>
    
    .videoWrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    padding-top: 25px;
    height: 0;
    }
    .videoWrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    }
    
    
    .视频包装器{
    位置:相对位置;
    填充底部:56.25%;/*16:9*/
    填充顶部:25px;
    身高:0;
    }
    .videoWrapper-iframe{
    位置:绝对位置;
    排名:0;
    左:0;
    宽度:100%;
    身高:100%;
    }
    
    为了您自己的调试和更好地获得帮助,您应该尝试将代码减少到再现问题的最低限度。这是MCVE在帮助中心上解释的:。这里有一个很好的讨论: