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