【问题标题】:Trying to recreate a effect with jQuery and not CSS3尝试使用 jQuery 而不是 CSS3 重新创建效果
【发布时间】:2014-07-16 02:10:55
【问题描述】:

看到这个幻灯片在 CodePen 上显示效果,我想知道是否有人可以帮助我使用 jQuery 重新创建它?效果可以在here找到。虽然我了解 CSS 发生了什么,但我想使用 jQuery/JavaScript 创建这种效果。

HTML:

    <section>
    <div id="icon-wrapper">
        <a href="map.html">
            <div class="icons">
                <div class="icon-slide-container">
                    <img class="slide-icon"  alt="The Kite Map Logo" height="100" src="http://thekitemap.com/images/slide/view-map.jpg">
                </div>
            </div>
        </a>
    </div>
</section>

CSS:

    body{
  background:#eeeeee;
}

section{
    float: left;
    padding-top: 50px;
    padding-bottom: 100px;
    width: 100%;
    padding-left:0;
    padding-right:0;
}

#icon-wrapper{
    width:100%;
    float:left;
    height:300px;
}

.icons {
    width:25%;
    float:left;
    position:relative;
}

.icon-slide-container{
    height:300px;
    overflow:hidden;
    text-align: left;
    position: absolute;
    float: left;
    width: 300px;
    left: 50%;
    margin-left: -150px;
}

.slide-icon{
    width:300px;
    height:auto;
    position:absolute;
    margin-top:-300px;
    -webkit-transition:.4s ease;
    -moz-transition:.4s ease;
    -ms-transition:.4s ease;
    -o-transition:.4s ease;
    transition:.4 ease;
}

.slide-icon:hover{
    position:absolute;
    margin-top:0;
}

【问题讨论】:

  • 出于好奇,如果您了解它在 CSS 中的工作原理并且确实可以按您的意愿工作,为什么要在 jQuery 中实现它?
  • 我猜,1) 我想在 JS 上变得更好 2) 我需要在旧浏览器上做同样的事情。但说真的,我想更好地编写 JS。
  • 因为您没有提供任何代码尝试...看来您希望有人为您创建它。学习的地方在哪里?
  • jQuery 中的幻灯片方法是您应该开始的地方,但 CSS 是一个更简单的解决方案。如果你想在 JS 方面做得更好,请人们“帮助我使用 jQuery 重新创建它”不会帮助你变得更好。先自己试一试,然后带着具体问题来这里。
  • 不,我试过了...我可能不会复制我所做的任何代码,但话又说回来...我写的很多代码...见鬼,看起来就像鸡爪。不会学习复制其他代码,但是当您不知道从哪里开始或没有任何线索时……会使它变得更加困难。感谢@ChrisWillard 为我指明方向。

标签: jquery


【解决方案1】:

我同意您应该发布您的尝试。这是一个简单的开始:

http://jsfiddle.net/isherwood/9Lwk8/

.wrapper {
    width: 200px;
}
.wrapper > div {
    height: 200px;
}
.text {
    display: none;
    background-color: #eee;
    overflow: hidden;
}

<div class="wrapper">
    <div class="text">
         <h1>Some text</h1>
    </div>

    <div class="image">
        <img src="http://placekitten.com/200/200" />
    </div>
</div>

$('.wrapper').hover(function () {
    $('.image').slideUp();
    $('.text').slideDown();
}, function () {
    $('.image').slideDown();
    $('.text').slideUp();
});

要让文本 div 从上方滑入,您需要设置 margin-top 或类似的动画。 jQuery 有很好的文档,所以看看。

【讨论】:

  • 谢谢@isherwood。最后一件事,在启动和重置动画边距顶部时使用 mouseenter 和 mouseleave 是否正确?
  • “.hover() 方法绑定了 mouseenter 和 mouseleave 事件的处理程序。您可以使用它在鼠标位于元素内时简单地将行为应用于元素。” api.jquery.com/hover
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多