【发布时间】:2015-06-20 20:08:06
【问题描述】:
我正在尝试在项目之间切换时添加过渡效果。此代码当前有效,但我宁愿在切换项目时使用淡入淡出效果。这可能吗?
Here is a jsfiddle 如果有帮助的话。谢谢!
我的代码:
HTML
<body>
<div id="proj_name"></div>
<div id="proj_description"></div>
<img id="proj_img" src=""><br>
<button id="proj_switcher">Next Project</button>
</body>
JavaScript
/**
* Constructor function for Projects
*/
function Project(name, description, img) {
this.name = name;
this.description = description;
this.img = img;
}
// An array containing all the projects with their information
var projects = [
new Project('Project 1', 'Project 1 Description', 'http://bit.ly/1E0IzpX'),
new Project('Project 2', 'Project 2 Description', 'http://bit.ly/1FHLGOt'),
new Project('Project 3', 'Project 3 Description', 'http://bit.ly/1H5wRt7'),
new Project('Project 4', 'Project 4 Description', 'http://bit.ly/1ECIQht'),
new Project('Project 5', 'Project 5 Description', 'http://bit.ly/1CYeY9F')
];
// Cacheing HTML elements
var projName = document.querySelector('#proj_name');
var projDescr = document.querySelector('#proj_description');
var projImg = document.querySelector('#proj_img');
var projButton = document.querySelector('#proj_switcher');
// Index of the current project being displayed
var projIndex = 0;
projButton.addEventListener('click', function() {
projName.innerHTML = projects[projIndex].name;
projDescr.innerHTML = projects[projIndex].description;
projImg.src = projects[projIndex].img;
projImg.style.width = '250px';
projImg.style.height = '150px';
projIndex = (projIndex + 1) % projects.length;
});
【问题讨论】:
-
根据过渡类型及其复杂程度,您可能需要在内容之间切换的“屏幕外”缓冲区 div 才能实现此目的。即同时淡入和淡出,可能需要2个重叠的div(彼此绝对放置),其中一个处于不透明度1,另一个处于不透明度0,作为过渡,将新内容注入不可见的div,然后,在可见 div 上设置淡出过渡并在不可见 div 上淡入,并且您的代码需要跟踪哪个是哪个,因为您将在两者之间切换。
-
@JimmyChandra 谢谢!我很可能会听从您的建议并使用淡出和淡入 div。
标签: javascript html transition