hamburger и ripple
Вложений: 2
Всем привет, подскажите пожалуйста как сделать так что бы при нажатии на ripple(пульсация) так же запускалась анимация гамбургера? То есть когда я нажимаю на гамбургер анимация и ripple срабатывают, но когда я нажимаю на ripple анимация ripple срабатывает но анимация гамбургера нет)
Как бы эти 2 кода объеденить?
/*Анимация гамбургера*/
$(function () {
$('.hamburger').on('click', function() {
$(this).find('.hamburger--line').toggleClass('hamburger--line__x');
});
});
/*Анимация нажатия*/
$(document).on('click', '.ripple', function(e) {
var $ripple = $('<span class="rippling" />'),
$button = $(this),
btnOffset = $button.offset(),
xPos = e.pageX - btnOffset.left,
yPos = e.pageY - btnOffset.top,
size = 1,
animateSize = parseInt(Math.max($button.innerWidth(), $button.innerHeight()) * Math.PI);
$ripple.css({
top: yPos,
left: xPos,
width: size,
height: size,
backgroundColor: $button.attr("ripple-color"),
opacity: $button.attr("ripple-opacity")
})
.appendTo($button)
.animate({
width: animateSize,
height: animateSize,
// transform: 'scale(' + animateSize + ')',
opacity: 0
}, 500, function() {
$(this).remove();
});
});
на 1-ом изображении я нажимаю рядом с гамбургером, ripple срабатывает но гамбургер не анимирует на 2-ом изображении я нажимаю на гамбургер |
GTRka, нужно вызвать событие, к которому привязана анимация, ease же.
/*Анимация гамбургера*/
$(function () {
$('.hamburger').on('click', function(e) {
if(!e.isTrigger)//если вызвано не скриптом
$('.ripple').click();
$(this).find('.hamburger--line').toggleClass('hamburger--line__x');
});
});
С .ripple тоже самое нужно сделать, только кликать на гамбургере. |
Nexus,
Сделал вот так, теперь при нажатии на гамбургер он не анимирует, но если нажать рядом с гамбургером(ripple),гамбургер анимирует. А нужно что бы куда бы я не нажал , на ripple или же на гамбургер была анимация обоих компонентов. P.S. я не особо силен в этом, я только учусь)
/*Анимация гамбургера*/
$(function () {
$('.hamburger').on('click', function(e) {
if(!e.isTrigger) //если вызвано не скриптом
$('.ripple').click();
$(this).find('.hamburger--line').toggleClass('hamburger--line__x');
});
});
/*Анимация нажатия*/
$(document).on('click', '.ripple', function(e) {
if(!e.isTrigger) //если вызвано не скриптом
$('.hamburger').click();
var $ripple = $('<span class="rippling" />'),
$button = $(this),
btnOffset = $button.offset(),
xPos = e.pageX - btnOffset.left,
yPos = e.pageY - btnOffset.top,
size = 1,
animateSize = parseInt(Math.max($button.innerWidth(), $button.innerHeight()) * Math.PI);
$ripple.css({
top: yPos,
left: xPos,
width: size,
height: size,
backgroundColor: $button.attr("ripple-color"),
opacity: $button.attr("ripple-opacity")
})
.appendTo($button)
.animate({
width: animateSize,
height: animateSize,
// transform: 'scale(' + animateSize + ')',
opacity: 0
}, 500, function() {
$(this).remove();
});
});
|
GTRka,
http://api.jquery.com/trigger/ - если не разберётесь, то приведите html-код, желательно с рабочим параметром run: https://javascript.ru/formatting |
Белый шум,
С параметром ран не получается(( вот html <div class="flex_hero"> <div class="flex-left"> <div class="btn-round ripple menu"> <div class="hamburger"> <div class="hamburger--line"></div> </div> </div> </div> </div> |
Цитата:
<html><body>
<script src="//code.jquery.com/jquery-latest.min.js"></script>
<div class="flex_hero">
<div class="flex-left">
<div class="btn-round ripple menu" style="width:300px;height:100px;background-color:red;">
<div class="hamburger">
<div class="hamburger--line" style="width:200px;height:10px;background-color:yellow;"></div>
</div>
</div>
</div>
</div>
<script>
/*Анимация гамбургера*/
$(function () {
$('.hamburger').on('click', function(e) {
e.stopPropagation();
if(!e.isTrigger) //если вызвано не скриптом
$('.ripple').click();
console.log('нажат гамбургер');
$(this).find('.hamburger--line').toggleClass('hamburger--line__x');
});
});
/*Анимация нажатия*/
$(document).on('click', '.ripple', function(e) {
e.stopPropagation();
if(!e.isTrigger) //если вызвано не скриптом
$('.hamburger').click();
console.log('нажат риппл');
var $ripple = $('<span class="rippling" />'),
$button = $(this),
btnOffset = $button.offset(),
xPos = e.pageX - btnOffset.left,
yPos = e.pageY - btnOffset.top,
size = 1,
animateSize = parseInt(Math.max($button.innerWidth(), $button.innerHeight()) * Math.PI);
$ripple.css({
top: yPos,
left: xPos,
width: size,
height: size,
backgroundColor: $button.attr("ripple-color"),
opacity: $button.attr("ripple-opacity")
})
.appendTo($button)
.animate({
width: animateSize,
height: animateSize,
// transform: 'scale(' + animateSize + ')',
opacity: 0
}, 500, function() {
$(this).remove();
});
});
</script>
</body></html>
|
| Часовой пояс GMT +3, время: 06:53. |