使用 JS 代码在幻灯片放映中垂直居中图像
Vertical centering images within a slideshow using JS code?
我相信我有一个
问题需要在javascript中解决,但不知道如何开始,所以希望javascript社区的人能够提供帮助。
基本上,以下代码允许我将 10 张图像加载到幻灯片轮播中。但是,这些图像是 600px x 400px 纵向或 400px x 600 横向。我遇到的问题是风景图像垂直对齐到容器的顶部。
我已经设法通过在我的CSS文件image-P和image-L中创建两个类来解决这个问题
image-L有一个"填充顶部:100px",它成功地垂直对齐中心的风景图像。
我想做的是让代码检查哪些图像是横向的,然后创建
return '<img src="Images/' + item.url + '" class="image-L" alt="" />';
和其他任何东西使用
return '<img src="Images/' + item.url + '" class="image-P" alt="" />';
提前非常感谢。
干杯罗布。
<script type="text/javascript">
var mycarousel_itemList = [
{ url: "Image1.jpg" },
{ url: "Image2.jpg" },
{ url: "Image3.jpg" },
{ url: "Image4.jpg" },
{ url: "Image5.jpg" },
{ url: "Image6.jpg" },
{ url: "Image7.jpg" },
{ url: "Image8.jpg" },
{ url: "Image9.jpg" },
{ url: "Image10.jpg" }
];
function mycarousel_itemLoadCallback(carousel, state) {
for (var i = carousel.first; i <= carousel.last; i++) {
if (carousel.has(i)) {
continue;
}
if (i > mycarousel_itemList.length) {
break;
}
carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[i - 1]));
}
};
/**
* Item html creation helper.
*/
function mycarousel_getItemHTML(item) {
return '<img src="Images/' + item.url + '" class="image-L" alt="" />';
};
jQuery(document).ready(function () {
jQuery('#mycarousel').jcarousel({
size: mycarousel_itemList.length,
itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback }
});
});
您可以尝试使用 Image 类 [2] 将图像加载到 JavaScript [1] 中,并检查图像本身的高度/宽度以确定要应用的类,但如果在加载时这样做,这会减慢速度。(我不知道浏览器是否会缓存该文件,以便您稍后显示该文件)。
似乎最好在将图像添加到文档/显示后等待并应用样式。
您可能可以使用jQuery来获取(浏览器)视图的高度和图像的高度,然后将图像绝对定位为居中。(如果您以后想使用不同的图像大小,这会更灵活)。
- http://www.techrepublic.com/article/preloading-and-the-javascript-image-object/5214317
- http://www.w3schools.com/jsref/dom_obj_image.asp
我的解决方案:
<script type="text/javascript">
function preloader() {
// counter
var i = 0;
// create object
imageObj = new Image();
// set image list
images = new Array();
images[0] = "Images/image1.jpg"
images[1] = "Images/image2.jpg"
images[2] = "Images/image3.jpg"
images[3] = "Images/image4.jpg"
images[4] = "Images/image5.jpg"
images[5] = "Images/image6.jpg"
images[6] = "Images/image7.jpg"
images[7] = "Images/image8.jpg"
images[8] = "Images/image9.jpg"
images[9] = "Images/image10.jpg"
// start preloading
for (i = 0; i <= 9; i++) {
imageObj.src = images[i];
}
}
</script>
<script type="text/javascript">
var mycarousel_itemList = [
{ url: "Images/Image1.jpg" },
{ url: "Images/Image2.jpg" },
{ url: "Images/Image3.jpg" },
{ url: "Images/Image4.jpg" },
{ url: "Images/Image5.jpg" },
{ url: "Images/Image6.jpg" },
{ url: "Images/Image7.jpg" },
{ url: "Images/Image8.jpg" },
{ url: "Images/Image9.jpg" },
{ url: "Images/Image10.jpg" }
];
function mycarousel_itemLoadCallback(carousel, state) {
for (var i = carousel.first; i <= carousel.last; i++) {
if (carousel.has(i)) {
continue;
}
if (i > mycarousel_itemList.length) {
break;
}
carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[i - 1]));
}
};
/**
* Item html creation helper.
*/
function mycarousel_getItemHTML(item) {
return '<img src="' + item.url + '" class="image" alt="" />';
};
jQuery(document).ready(function () {
jQuery('#mycarousel').jcarousel({
size: mycarousel_itemList.length,
itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback }
});
});
</script>
<%@ Page Title="" Language="C#" MasterPageFile="~/rwmSite.master" AutoEventWireup="true"
CodeFile="Portfolio.aspx.cs" Inherits="Portfolio" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
<link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
<script src="../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.jcarousel.min.js" type="text/javascript"></script>
<script type="text/javascript">
var mycarousel_itemList = [
{ url: "Image1.jpg" },
{ url: "Image2.jpg" },
{ url: "Image3.jpg" },
{ url: "Image4.jpg" },
{ url: "Image5.jpg" },
{ url: "Image6.jpg" },
{ url: "Image7.jpg" },
{ url: "Image8.jpg" },
{ url: "Image9.jpg" },
{ url: "Image10.jpg"}];
function mycarousel_itemLoadCallback(carousel, state) {
for (var i = carousel.first; i <= carousel.last; i++) {
if (carousel.has(i)) {
continue;
}
if (i > mycarousel_itemList.length) {
break;
}
carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[i - 1]));
}
};
/**
* Item html creation helper.
*/
function mycarousel_getItemHTML(item) {
var x = new Image(); x.src = item.url;
while (!x.complete)
if (x.height <= 400)
return '<img src="../Images/' + item.url + '" class="image-L" alt="" />';
else
return '<img src="../Images/' + item.url + '" class="image-P" alt="" />';
};
jQuery(document).ready(function () {
jQuery('#mycarousel').jcarousel({
size: mycarousel_itemList.length,
itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback }
});
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<div id="wrap" align="center">
<div class=" jcarousel-skin-tango">
<div class="jcarousel-container jcarousel-container-horizontal">
<div class="jcarousel-clip jcarousel-clip-horizontal">
<ul id="mycarousel" class="jcarousel-list jcarousel-list-horizontal">
</ul>
</div>
<div class="jcarousel-prev jcarousel-prev-horizontal">
</div>
<div class="jcarousel-next jcarousel-next-horizontal">
</div>
</div>
</div>
</div>
</asp:Content>
相关文章:
- 如何在响应视频上垂直居中文本
- instafeed.js返回的居中图像
- 垂直居中动态UL
- 如何强制流体Vimeo iframe自动垂直居中
- 鼠标悬停在脚本上时使用居中图像弹出窗口
- 如何使我的水平亚垂直居中对齐
- 垂直居中使用Javascript的按钮潜水
- 将 垂直居中放在表格
内 - 垂直居中上传的图像预览
- 如何在 javascript 表中居中图像
- 在引导列中垂直居中响应图像
- 使用 JS 代码在幻灯片放映中垂直居中图像
- 垂直对齐居中图像旁边的多行文本
- 如何在fullpage.js中垂直居中显示图像
- 使用jQuery垂直居中和裁剪图像
- 如果图像高度超过图像宽度,通过裁剪其顶部和底部来垂直居中图像-仅使用CSS即可
- 垂直居中我的背景图像
- 在父行中将图像垂直居中
- 在固定高度的引导转盘上垂直居中显示图像
- 垂直居中可变高度图像,同时保持最大宽度/高度