我想动画这个div,所以当我点击"显示更多"按钮高度根据文本的高度而变化。我对动画有问题,因为只有在第二次点击“显示更多”和“#34”时才触发动画。按钮。有什么想法吗?
这是html文件:
<div class="col-sm-4 ">
<div class="testimonial">
<h5>John P.</h5>
<div id="div1" class="comment-container" ng-class="{show1:show1}">
<p>“Yes very good experience, the tekker came on time and known how to do his job, very pleased with the service.“
</p>
</div>
<button id="comm1" class="btn btn-info1 btn-xs" style="cursor: pointer; margin-top: 20px; margin-bottom: 12px; border-radius: 10px;"
ng-click="homeCtrl.animateComment();" ng-show="!show1">Show more
</button>
<button class="btn btn-info2 btn-xs" style="cursor: pointer; margin-bottom: 12px; border-radius: 10px;"
ng-click="show1 = false;" ng-show="show1">Show less
</button>
</div>
<img class="triunghi" src="/img/triunghi.png">
</div>
这是CSS:
.comment-container {
font-size: 16px;
line-height: 20px;
height: 52px;
overflow: hidden;
margin-bottom: -12px;
}
.show-more{
cursor: pointer; margin-top: 20px; margin-bottom: 12px;
}
.show-less{
cursor: pointer; margin-bottom: 12px;
}
.show1 {
overflow: visible;
height: auto;
}
.show2 {
overflow: visible;
height: auto;
}
.show3 {
overflow: visible;
height: auto;
}
这是javascript和jquery:
function animateComment() {
$scope.show1 = true;
$("#comm1").click(function(){
$("#div1").animate({
left: '250px',
opacity: '0.5',
height: '150px'
},2000);
});
}
答案 0 :(得分:1)
删除函数中的.click()
方法调用;用于附加事件处理程序,而不是调用它们。试试这个:
function animateComment() {
$scope.show1 = true;
$("#div1").animate({
left: '250px',
opacity: '0.5',
height: '150px'
}, 2000);
}