淡入淡出两个图像[JavaScript]

时间:2015-02-22 15:36:53

标签: javascript html image button slider

我正在尝试使用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>

3 个答案:

答案 0 :(得分:0)

onmouseover也会影响子元素,因此在鼠标悬停时你可以同时触发这两个函数。

答案 1 :(得分:0)

首先验证你的html中是否包含jquery脚本。第二,将函数包装在$(document).ready()函数中。

$( document ).ready(function() {
  function hideFirst()
    {
      $("#SliderBack1").fadeIn('fast');
      $("#SliderBack2").fadeOut('fast');
    }

    function hideSecond()
    {
      $("#SliderBack2").fadeIn('fast');
      $("#SliderBack1").fadeOut('fast');
  }
});

答案 2 :(得分:0)

尝试在jquery中绑定悬停而不是onmousover内联html事件,我添加了小提琴并且工作正常,我在你的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;
}

小提琴here