淡入淡出两个图像 [JavaScript]
Fade In and Out two images [JavaScript]
我正在尝试使用 2 个按钮和淡入淡出效果制作一个简单的滑块。一切都应该正常工作,但事实并非如此。我的代码有什么问题?
@Edit:我已经发布了我所有的代码。
我尝试用 CSS 来做,但没有成功。我尝试过关键帧、过渡和 JS 动画。
$(window).scroll(function(e){
$el = $('.fixedElement');
if ($(this).scrollTop() > 100 && $el.css('position') != 'fixed'){
$('.fixedElement').css({'position': 'fixed', 'top': '0px'});
}
if ($(this).scrollTop() < 100 && $el.css('position') == 'fixed')
{
$('.fixedElement').css({'position': 'static', 'top': '0px'});
}
});
$( document ).ready(function() {
function hideFirst()
{
$("#SliderBack1").fadeIn('fast');
$("#SliderBack2").fadeOut('fast');
}
function hideSecond()
{
$("#SliderBack2").fadeIn('fast');
$("#SliderBack1").fadeOut('fast');
}
});
@charset "utf-8";
/* CSS Document */
body
{
margin: 0;
padding: 0;
}
#Top
{
width: 100%;
height: 100px;
background-color: #f1f1f1;
}
#Slider
{
margin-top: 100px;
width: 100%;
height: 250px;
background-color: #333;
padding: 0;
}
#Slider img
{
width: 100%;
height: 300%;
}
#Choices
{
position: absolute;
width: 100%;
height: 180px;
background-color: #f9f9f9;
padding: 0;
}
#Choices div
{
cursor:pointer;
font-family: "Segoe UI";
text-align: left;
padding-left: 10px;
color: #333;
background-color: #f9f9f9;
width: 49.1%;
display: inline-table;
-moz-transition: 0.5s;
-o-transition: 0.5s;
-webkit-transition: 0.5s;
transition: 0.5s;
height: 180px;
}
#Choices div:hover
{
-moz-transition: 0.5s;
-o-transition: 0.5s;
-webkit-transition: 0.5s;
transition: 0.5s;
background-color: #e5e5e5;
}
#Content
{
position: absolute;
top: 520px;
width: 100%;
height: 750px;
background-color: red;
}
#Bottom
{
position: absolute;
top: 1270px;
width: 100%;
height: 100px;
background-color: blue;
}
.fixedElement
{
position:fixed;
top:0;
width:100%;
z-index:100;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="Files/Style/MainStyle.css" rel="stylesheet" type="text/css" />
<script src="Files/Script/MainScript.js"></script>
<title>Working</title>
</head>
<body>
<div id="Top" class="fixedElement"></div>
<div id="Slider">
<img id="SliderBack1" src="Files/Images/slider1.jpg" />
<img id="SliderBack2" src="Files/Images/slider2.jpg" />
</div>
<div id="Choices">
<div div="MaintenanceButton" class="button1" onmouseover="hideFirst()">
<h3>Manutenção</h3>
de computadores e notebooks
</div>
<div id="MaintenanceButton" class="button2" onmouseover="hideSecond()">
<h3>Desenvolvimento</h3>
de sites
</div>
</div>
<div id="Content"></div>
<div id="Bottom"></div>
</body>
</html>
onmouseover 也会影响子元素,因此在鼠标悬停时会同时触发这两个函数。
首先验证您的 html 中是否包含 jquery 脚本。其次,将您的函数包装在 $(document).ready() 函数中。
$( document ).ready(function() {
function hideFirst()
{
$("#SliderBack1").fadeIn('fast');
$("#SliderBack2").fadeOut('fast');
}
function hideSecond()
{
$("#SliderBack2").fadeIn('fast');
$("#SliderBack1").fadeOut('fast');
}
});
尝试在 jquery 中绑定悬停而不是 onmousover 内联 html 事件,我添加了 fiddle 并且工作正常,我对你的 css 进行了一些更改,特别是位置每个滑块的绝对值和容器的相对值。
$(".button1").hover(function(){
$("#SliderBack1").fadeIn('fast');
$("#SliderBack2").fadeOut('fast');
})
这里是 css 更改:
#Slider
{
margin-top: 100px;
width: 100%;
height: 250px;
background-color: #333;
overflow:hidden;
position: relative;
}
#Slider img
{
width: 100%;
height: 300%;
position: absolute;
top: 0;
left: 0;
}
Fiddle here
我正在尝试使用 2 个按钮和淡入淡出效果制作一个简单的滑块。一切都应该正常工作,但事实并非如此。我的代码有什么问题?
@Edit:我已经发布了我所有的代码。
我尝试用 CSS 来做,但没有成功。我尝试过关键帧、过渡和 JS 动画。
$(window).scroll(function(e){
$el = $('.fixedElement');
if ($(this).scrollTop() > 100 && $el.css('position') != 'fixed'){
$('.fixedElement').css({'position': 'fixed', 'top': '0px'});
}
if ($(this).scrollTop() < 100 && $el.css('position') == 'fixed')
{
$('.fixedElement').css({'position': 'static', 'top': '0px'});
}
});
$( document ).ready(function() {
function hideFirst()
{
$("#SliderBack1").fadeIn('fast');
$("#SliderBack2").fadeOut('fast');
}
function hideSecond()
{
$("#SliderBack2").fadeIn('fast');
$("#SliderBack1").fadeOut('fast');
}
});
@charset "utf-8";
/* CSS Document */
body
{
margin: 0;
padding: 0;
}
#Top
{
width: 100%;
height: 100px;
background-color: #f1f1f1;
}
#Slider
{
margin-top: 100px;
width: 100%;
height: 250px;
background-color: #333;
padding: 0;
}
#Slider img
{
width: 100%;
height: 300%;
}
#Choices
{
position: absolute;
width: 100%;
height: 180px;
background-color: #f9f9f9;
padding: 0;
}
#Choices div
{
cursor:pointer;
font-family: "Segoe UI";
text-align: left;
padding-left: 10px;
color: #333;
background-color: #f9f9f9;
width: 49.1%;
display: inline-table;
-moz-transition: 0.5s;
-o-transition: 0.5s;
-webkit-transition: 0.5s;
transition: 0.5s;
height: 180px;
}
#Choices div:hover
{
-moz-transition: 0.5s;
-o-transition: 0.5s;
-webkit-transition: 0.5s;
transition: 0.5s;
background-color: #e5e5e5;
}
#Content
{
position: absolute;
top: 520px;
width: 100%;
height: 750px;
background-color: red;
}
#Bottom
{
position: absolute;
top: 1270px;
width: 100%;
height: 100px;
background-color: blue;
}
.fixedElement
{
position:fixed;
top:0;
width:100%;
z-index:100;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="Files/Style/MainStyle.css" rel="stylesheet" type="text/css" />
<script src="Files/Script/MainScript.js"></script>
<title>Working</title>
</head>
<body>
<div id="Top" class="fixedElement"></div>
<div id="Slider">
<img id="SliderBack1" src="Files/Images/slider1.jpg" />
<img id="SliderBack2" src="Files/Images/slider2.jpg" />
</div>
<div id="Choices">
<div div="MaintenanceButton" class="button1" onmouseover="hideFirst()">
<h3>Manutenção</h3>
de computadores e notebooks
</div>
<div id="MaintenanceButton" class="button2" onmouseover="hideSecond()">
<h3>Desenvolvimento</h3>
de sites
</div>
</div>
<div id="Content"></div>
<div id="Bottom"></div>
</body>
</html>
onmouseover 也会影响子元素,因此在鼠标悬停时会同时触发这两个函数。
首先验证您的 html 中是否包含 jquery 脚本。其次,将您的函数包装在 $(document).ready() 函数中。
$( document ).ready(function() {
function hideFirst()
{
$("#SliderBack1").fadeIn('fast');
$("#SliderBack2").fadeOut('fast');
}
function hideSecond()
{
$("#SliderBack2").fadeIn('fast');
$("#SliderBack1").fadeOut('fast');
}
});
尝试在 jquery 中绑定悬停而不是 onmousover 内联 html 事件,我添加了 fiddle 并且工作正常,我对你的 css 进行了一些更改,特别是位置每个滑块的绝对值和容器的相对值。
$(".button1").hover(function(){
$("#SliderBack1").fadeIn('fast');
$("#SliderBack2").fadeOut('fast');
})
这里是 css 更改:
#Slider
{
margin-top: 100px;
width: 100%;
height: 250px;
background-color: #333;
overflow:hidden;
position: relative;
}
#Slider img
{
width: 100%;
height: 300%;
position: absolute;
top: 0;
left: 0;
}
Fiddle here