javascript - 使用 Jquery 制作动画后需要重置原始样式吗?

标签 javascript jquery html css

我一直在研究一个简单的 JQuery slider ,但我很难尝试让导航栏动画和图像 slider 动画保持同步。这是代码。

HTML

<div id="slider">
  <ul>
    <li ><a href="our_chapter.html"><img src="images/nationals.JPG" class="slider_img" class='active'/></a></li>
    <li><a href="classes_at_harriton.html"><img src="images/competitionstart.JPG" class="slider_img" /></a></li>
    <li><a href="http://webmaster.tsaprotectandserve.com"><img src="images/tsa.JPG" class="slider_img"/></a></li>
  </ul>
</div>

<div id="toolbar">
   <ul>
    <li><a href="our_chapter.html"class='active'>Discover<p>Find out what TSA is</p></a></li>
    <li><a href="classes_at_harriton.html">Learn<p>Learn about STEM class at Harriton</p></a></li>
    <li><a href="http://webmaster.tsaprotectandserve.com">Explore<p>Jump into the world of Web Design</p></li>
   </ul>
</div>

CSS

#slider {
 position:relative;
 display:block;
 height : 338px;
 width: 600px;
 clear: both;
 left:20%;
 margin: 0px 0px 0px 0px;
 padding: 0px;
}
#slider ul {
 list-style:none;
 margin: 0px 0px 0px 0px;
 overflow:hidden;
}
#slider ul li{
 position:absolute;
 top: 0;
 left: 0;
 z-index: 8;
 opacity: 0.0
}
#slider ul li img {
 width:600px;
 height: 338px;
 margin: 0px 0px 0px 0px;
}
#slider ul li.active {
 z-index: 10;

}
#slider ul li.last-active {
 z-index: 9;
}
#toolbar {
 position:relative;
 display: block;
     width: 600px;
 left: 20%;

 }
 #toolbar ul {
 position: absolute;
 list-style:none;
 padding: 10px;
 display:block;
 left: 0px;
 top: 0px;
 overflow: hidden;
 width:600px;
 margin: 0px 0px 0px 0px;
 padding: 0px 0px 0px 0px;
}
#toolbar ul li{
 float:left;
 z-index:8;
 background: rgb(31,29,30);
}
#toolbar ul li.active{
 z-index:10;
 background: rgb(105,100,100);
}
#toolbar ul li.lastactive{
 z-index:9;
}
#toolbar ul li a {
 display: block;
 width: 190px;
 height:80px;
 color: #fff;
 text-decoration:none;
 font-size: 24px;
 font-style: bold;
 padding: 5px;
 z-index:8;

}
#toolbar ul li a p {
 padding: 0px;
 margin:0px;
 font-size:14px;
}

Javascript

//Fade in and outs
function slideSwitch() {
    //Image slider
    var $active= $('#slider ul li.active');
    if ($active.length == 0) $active = $('slider ul li:last')
    var $next = $active.next().length ? $active.next()
      : $('#slider ul li:first');
    $active.addClass('last-active');
    $next.addClass('active');
    $active.removeClass('active');

    //Fade animation
    $next.css({opacity: 0.05})
      .addClass('active')
      .animate({opacity: 1.00}, 1000, function() {
        $active.removeClass('active last-active');
    })

}
function toolbarSwitch() {
    //toolbar slider
    var $active= $('#toolbar ul li.active');
    if ($active.length == 0) $active = $('slider ul li:last')
    var $next = $active.next().length ? $active.next()
      : $('#toolbar ul li:first');
    $active.addClass('last-active');
    $next.addClass('active');
    $active.removeClass('active');

    //Fade animation
    $next.css({background: rgb(31,29,30)})
      .addClass('active')
      .animate({background: rgb(100,100,100)}, 1000, function() {
        $active.removeClass('active last-active');
    })
}

//Interval between slides

$(function() {
    setInterval("slideSwitch()", 5000);
    setInterval("toolbarSwitch()", 5000);
});

作为引用,我嵌入了 Jquery,这是一个 Jquery 颜色插件,可以为颜色设置动画。提前感谢您的帮助。

最佳答案

是同步问题吗? 过去我遇到过这样的问题,我在 jquery 中使用 stop 方法

$( "#toggle").on( "点击", function() { $block.stop().slideToggle( 1000 ); });

这只是一个示例,但可以帮助您获得同步动画

Example here

关于javascript - 使用 Jquery 制作动画后需要重置原始样式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738389/

相关文章:

javascript - 刷新javascript中的时间

javascript - 将变量从一个页面传递到另一个页面

javascript - 我使用 NgFor 和 NgForOf 吗?

javascript - 在 angularjs 中,为什么 ng-click 元素也会触发元素属性中的其他方法调用?

javascript - 从对象内的 JavaScript 数组中获取第一个值

html - “底部”在 Edge 中不起作用

javascript - 使用 JavaScript Fetch 返回待处理的 Promise

javascript - JQuery DataTables 土耳其语字符排序问题

Javascript/jQuery - 单击时删除复选框值

javascript - 更改png图像背景颜色