需要帮助平滑此 JavaScript 幻灯片中的过渡
Need help smoothing out the transitions in this javascript slideshow
我有一个幻灯片,它是用带有文本叠加的 script.aculo.us 实现的,它在技术上是有效的,但我需要比现在更平滑的过渡。
更新:下面的JSFiddle链接。希望这能给我一些回应?
我认为这是一个CSS问题。"下一个"图像在应该淡入时淡入,但它发生在淡出的图像下方,然后弹出到位。您可以通过缩小浏览器宽度来观察这种情况的发生。由于最大高度和响应式布局,这会导致事物上下反弹。我觉得图像需要位置:绝对才能淡入正确的位置,但是我尝试添加的每种方式都会导致整个幻灯片完全消失。
CSS的
#slideshowContainer {
position:relative;
width:100%;
max-height:400px;
overflow:hidden;
}
/*.slideshow {
position:relative;
top:0px;
width:100%;
} */ /*(this wasn't accomplishing anything, tried it with absolute also)*/
.slideshowImage { /*relative = broken, absolute = invisible */
left:0;
top:0px;
}
.slideshowImage img { /*relative = broken, absolute = invisible */
width:100%;
}
.slideshowOverlay { /*this overlay works just fine, only the images are broken */
position:absolute;
width:100%;
height:105px;
bottom:0px;
background: rgb(51, 51, 51); /* Fall-back for browsers that don't support rgba */
background: rgba(51, 51, 51, .8);
}
这是 js:
var i = 0;
var image_slide = new Array('image-1','image-2','image-3'); //etc...
var NumOfImages = image_slide.length;
var wait = 6000;
function SwapImage(x,y) {
$(image_slide[x]).appear({ duration: 2 });
$(image_slide[y]).fade({duration: 2});
}
function StartSlideShow() {
play = setInterval('Play()',wait);
}
function Play() {
var imageShow, imageHide;
imageShow = i+1;
imageHide = i;
if (imageShow == NumOfImages) {
SwapImage(0,imageHide);
i = 0;
} else {
SwapImage(imageShow,imageHide);
i++;
}
}
这是div 的样子:
<div class="col span_3_of_3" id="slideshowContainer">
<div id="image-1" class="slideshow">
<div class="slideshowImage"><img src="manage/photos/feature42.jpg" /></div>
<div class="slideshowOverlay">
<div class="slideshowTitle">blah blah blah</div>
<div class="slideshowSubTitle">blah blah blah blah blah blah</div>
<div class="slideshowMore">...<a href="content.php?id=42">MORE</a></div>
</div>
</div>
<div id="image-2" style="display: none;" class="slideshow">
<div class="slideshowImage"><img src="manage/photos/feature41.jpg" /></div>
<div class="slideshowOverlay">
<div class="slideshowTitle">blah blah blah</div>
<div class="slideshowSubTitle">blah blah blah blah blah blah</div>
<div class="slideshowMore">...<a href="content.php?id=41">MORE</a></div>
</div>
</div>
</div>
等等。
奇怪的是,div的叠加部分完美地淡入淡出,只有图像才奇怪。图像淡出为纯白色,然后下一个图像弹出得太快,除了最后一个图像,由于某种原因,它向后工作。
我想要的是同时平滑的淡入淡出,没有突然的弹出,中间没有空白。并且不会在较窄的响应尺寸中上下弹跳。
下面是一个演示该行为的 JSFiddle:JSFiddle 缩小幻灯片窗口的宽度以查看实际发生的情况。
任何帮助解决这个问题将不胜感激。请记住,此页面上没有jquery,不使用jquery的解决方案将非常可取,因为我以前没有使用它并且时间有点短。
你的问题是你在div
中淡入淡出,同时淡出一个div
......但它们都是相对定位的(这意味着在 DOM 中加载到另一个的第二个正在将另一个推到你的overflow:hidden;
下方)
通过在幻灯片上使用position:absolute;
并使它们成为容器的全尺寸,它们有效地将一个放在另一个之上
看看这里 http://jsfiddle.net/jb8Nx/7/
编辑:基于按比例缩放的建议,我使用padding-bottom
和position:absolute
和height:0
在 http://fluidsquares.com/使用了来自家伙的小CSS技巧。 更新了小提琴 http://jsfiddle.net/jb8Nx/10/(注意图像在低于 12:5 时比例缩放 400px 高:))
- 幻灯片滚动javascript不起作用
- JavaScript幻灯片显示,每个幻灯片的下一个按钮都有不同的位置
- 如何使用HTML、CSS和JavaScript创建自动图片库幻灯片
- 使用javascript动态选择幻灯片放映的图像
- 旧的javascript幻灯片只显示wihtout幻灯片(onclick)
- Javascript幻灯片淡出
- 使用javascript创建幻灯片效果
- 如何更改幻灯片放映的javascript数组中图片的大小
- JavaScript中的幻灯片不起作用
- 使用数据幻灯片到和javascript将类添加到转盘导航
- HTML Javascript 幻灯片优化
- 我已经用javascript制作了一个幻灯片,但我不知道如何让我的照片发呆
- 清除窗口Javascript幻灯片
- Google Drive SDK JavaScript:上传ppt(x)并将其转换为演示文稿(Google幻灯片)
- 如何在Javascript中用URL链接不同的幻灯片图像
- 在仅幻灯片 JavaScript 上添加播放/暂停按钮
- 背景幻灯片(javascript)渐变效果
- 添加淡出效果在幻灯片(Javascript)
- 制作动画中的幻灯片JavaScript和HTML
- 需要帮助与幻灯片JavaScript