мої запитання - як показати елемент div або box з фіксованим положенням внизу до клацання цілі
приклад:
<p>
<button class="target-show">target show</button>
<button class="target-show">target show</button>
</p>
<hr><hr><hr><hr><hr><hr><hr>
<hr><hr><hr><hr><hr><hr><hr>
<div id="demo"></div>
<p>
<button class="hidden-div">hidden div</button>
</p>
CSS:
p {
text-align:center;
}
button {
width : 50px;
}
#demo {
display :none;
padding : 25px;
background : red ;
width : 100px;
height : 100px;
}
jquery:
$(function() {
$(".target-show").click(function(e) {
var target = $(".target-show");
var div = $("#demo");
var left = e.clientX - target.width()/2;
var top = e.clientY - target.height()/2;
div.css({"position": "absolute", "left": left, "top": top}).show();
});
$(".hidden-div").click(function() {
$("#demo").hide();
});
});
$(function() {
$(".target-show").click(function(e) {
var target = $(".target-show");
var div = $("#demo");
var left = e.clientX - target.width()/2;
var top = e.clientY - target.height()/2;
div.css({"position": "absolute", "left": left, "top": top}).show();
});
$(".hidden-div").click(function() {
$("#demo").hide();
});
});
p {
text-align:center;
}
button {
width : 50px;
}
#demo {
display :none;
padding : 25px;
background : red ;
width : 100px;
height : 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<button class="target-show">target show</button>
<button class="target-show">target show</button>
</p>
<hr><hr><hr><hr><hr><hr><hr>
<hr><hr><hr><hr><hr><hr><hr>
<div id="demo"></div>
<p>
<button class="hidden-div">hidden div</button>
</p>
Відповіді:
0 для відповіді № 1Якщо ви хочете, щоб з'явився червоний div по центру внизу щодо вказівника миші, коли користувач клацає, ви повинні використовувати outerWidth()
і outerHeight()
який включає не тільки div
ширину та висоту, але також padding:25px
з вашого CSS.
Це також включало б ширину межі ...
І якщо ви здасте true
як аргумент він включатиме поля.
;)
$(function() {
$(".target-show").click(function(e) {
var div = $("#demo").show();
var left = e.clientX - (div.outerWidth()/2);
var top = e.clientY - (div.outerHeight());
div.css({"position": "absolute", "left": left, "top": top}).show();
});
$(".hidden-div").click(function() {
$("#demo").hide();
});
});
p {
text-align:center;
}
button {
width : 50px;
}
#demo {
display :none;
padding : 25px;
background : red ;
width : 100px;
height : 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<button class="target-show">target show</button>
<button class="target-show">target show</button>
</p>
<hr><hr><hr><hr><hr><hr><hr>
<hr><hr><hr><hr><hr><hr><hr>
<div id="demo"></div>
<p>
<button class="hidden-div">hidden div</button>
</p>