点击 div 切换动画
Toggle animation clicking in a div
我想在每次单击 div 时将一个值传递给函数参数,并在此函数中切换 jQuery 动画。我尝试了下面的代码,但没有用:
<div onclick="aboutMe(about1)"></div>
function aboutMe(x) {
$(x).toggle(function() {
$(x).animate({
width: '600px'
}, "slow");
}, function() {
$(x).animate({
width: '40px'
}, "slow");
});
};
我该怎么办?
您尝试使用的切换函数签名已从源中删除。要达到您的要求,您需要检查当前宽度并相应地设置新宽度。试试这个:
$(x).click(function() {
$(this).animate({ width: $(this).width() == 40 ? '600px' : '40px' });
});
另请注意,每次单击 div
并触发 aboutMe()
函数时都会附加事件处理程序。如果这不是预期的行为,您应该更改代码以便使用 JS 附加事件,如下所示:
<a href="#about1">About Me</a>
$('a').click(function() {
$($(this).attr('href')).animate({ width: $(this).width() == 40 ? '600px' : '40px' });
});
为什么不通过 Class 切换它?这不是最佳答案,但您可以考虑这个。
var aboutMe = function(x) {
$(x).toggleClass('short')
};
$(function() {
$('#clicker').click(function() {
aboutMe('#div1');
});
});
#div1 {
height: 100px;
width: 600px;
background: #eee;
text-align: center;
transition : width 1s linear;
}
#div1.short{
width : 40px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">Hey</div>
<button id="clicker">Toggle</button>
如何点击 div?据我所知,它在 div 元素上不起作用...
<label onclick="aboutMe(about1)">About Me</label>
https://jsfiddle.net/4ntzpw8z/1/
这里有一个 fiddle 给你。你只需要使用不同的元素。你的功能工作正常。
根据文档还没有删除切换:
在不同的主题上看到它:Whosebug
$(document).ready( function(){
$('#toggle-button').click( function() {
var toggleWidth = $("#toggle").width() == 300 ? "200px" : "300px";
$('#toggle').animate({ width: toggleWidth });
});
});
我想在每次单击 div 时将一个值传递给函数参数,并在此函数中切换 jQuery 动画。我尝试了下面的代码,但没有用:
<div onclick="aboutMe(about1)"></div>
function aboutMe(x) {
$(x).toggle(function() {
$(x).animate({
width: '600px'
}, "slow");
}, function() {
$(x).animate({
width: '40px'
}, "slow");
});
};
我该怎么办?
您尝试使用的切换函数签名已从源中删除。要达到您的要求,您需要检查当前宽度并相应地设置新宽度。试试这个:
$(x).click(function() {
$(this).animate({ width: $(this).width() == 40 ? '600px' : '40px' });
});
另请注意,每次单击 div
并触发 aboutMe()
函数时都会附加事件处理程序。如果这不是预期的行为,您应该更改代码以便使用 JS 附加事件,如下所示:
<a href="#about1">About Me</a>
$('a').click(function() {
$($(this).attr('href')).animate({ width: $(this).width() == 40 ? '600px' : '40px' });
});
为什么不通过 Class 切换它?这不是最佳答案,但您可以考虑这个。
var aboutMe = function(x) {
$(x).toggleClass('short')
};
$(function() {
$('#clicker').click(function() {
aboutMe('#div1');
});
});
#div1 {
height: 100px;
width: 600px;
background: #eee;
text-align: center;
transition : width 1s linear;
}
#div1.short{
width : 40px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">Hey</div>
<button id="clicker">Toggle</button>
如何点击 div?据我所知,它在 div 元素上不起作用...
<label onclick="aboutMe(about1)">About Me</label>
https://jsfiddle.net/4ntzpw8z/1/
这里有一个 fiddle 给你。你只需要使用不同的元素。你的功能工作正常。
根据文档还没有删除切换:
在不同的主题上看到它:Whosebug
$(document).ready( function(){
$('#toggle-button').click( function() {
var toggleWidth = $("#toggle").width() == 300 ? "200px" : "300px";
$('#toggle').animate({ width: toggleWidth });
});
});