首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery动画函数-click一个div切换另一个

jquery动画函数-click一个div切换另一个
EN

Stack Overflow用户
提问于 2017-05-14 02:32:22
回答 3查看 80关注 0票数 3

让这个jquery函数每次单击时都会给我第二个函数。我怎么才能阻止这一切?

我有一个导航栏,它有3个链接,每个链接都有一个id不同的.contentDiv。每当有人点击其中一个链接时,切换函数就会发生;隐藏所有的.contentDiv都希望链接到该链接。一个向左滑动的动画出现在那个.contentDiv上

HTML:

代码语言:javascript
运行
复制
.navbar
ul
    li
        a.about(href='#') About
            span
            span
    li
        a#portfolio(href='#') HOME
            span
            span
    li
        a(href='#') Contact
            span
            span
.contentDiv#portfolioContent
                    .title About
                    .content
                        .fse
                            p Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

CSS:

代码语言:javascript
运行
复制
    .contentDiv {
    transform: skew(45deg);
    width: 100%;
    height: 100%;
    position: relative;
    top: 5%;
    left: 300%;
    overflow: hidden;
}

.title {
    position: absolute;
    top: 30%;
    left: 30%;
    font-size: 500%;
    font-family: Raleway;
    font-weight: 800;
    color: #EAEBED;
}

.content {
    width: 100%;
    height: 50%;
    top: 43%;
    left: 3%;
    font-size: 130%;
    font-family: Raleway;
    color: #EAEBED;
    position: absolute;
    overflow:scroll;
    padding-bottom: 7%;
}

Jquery:

代码语言:javascript
运行
复制
$('.about').click(function () {
    $("#aboutContent").toggle(
        function() {
            $("#aboutContent").animate({left: "115%"}, { //coming out of hiding
                duration: 2000
            });
        }, function() {
            $("#aboutContent").animate({left: "300%"}, { //back into hiding
                duration: 2000
            });
        }
    );
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-14 03:10:55

您可以创建一个clickToggle函数,并使用它在单击时在函数之间切换:

来源:jQuery在两个函数之间单击/切换

代码语言:javascript
运行
复制
(function($) {
    $.fn.clickToggle = function(func1, func2) {
        var funcs = [func1, func2];
        this.data('toggleclicked', 0);
        this.click(function() {
            var data = $(this).data();
            var tc = data.toggleclicked;
            $.proxy(funcs[tc], this)();
            data.toggleclicked = (tc + 1) % 2;
        });
        return this;
    };
}(jQuery));

$('.about').clickToggle(function() {
  alert("First handler for .toggle() called.");
   $("#aboutContent").toggle("Slow");
}, function() {
  alert("Second handler for .toggle() called.");
   $("#aboutContent").toggle("Slow");
});
代码语言:javascript
运行
复制
#aboutContent {
  height: 200px;
  width: 200px;
  background: red;
}
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<button class="about">
  CLICK
</button>

<div id="aboutContent">
  123123123
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-05-14 03:02:56

代码语言:javascript
运行
复制
var c = 1;
$('.about').click(function() {
  $("#aboutContent").toggle(function() {
    c++;
    if (c % 2 == 0) alert("1")
    else alert("2");
  })
})
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
try this:
<button class="about">
  click
</button>

<div id="aboutContent">
  code..
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-05-14 03:52:59

在两个指定的函数之间切换的jQuery toggle()函数在v1.8中被弃用,在1.9中被删除,如前面提到的这里。现在只用于显示()和隐藏()。

因此,您必须创建另一个答案中提到的自定义切换插件,或者您可以检查这个堆栈溢出问题及答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43959834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档