Вопрос

Is there any way to input mouse click coordinates as the amount by which to change an element property as in the following sort of function? Specifically is there a way to use the Y coordinate of the mouse click as the pixel amount for the height instead of a fixed pixel number?

function changeObject() {
    document.getElementById('object').style.height = '500px';
}

Edit:

Use cookies to remember former height

<script type="text/javascript">
function setCookie (name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}
function getCookie (name) {
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
        offset = cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset);
            if (end == -1) {
                end = cookie.length;
            }
            setStr = unescape(cookie.substring(offset, end));
        }
    }
    if (setStr == 'false') {
        setStr = false;
    } 
    if (setStr == 'true') {
        setStr = true;
    }
    if (setStr == 'null') {
        setStr = null;
    }
    return(setStr);
}
  document.getElementById('bookmarktag').onclick = function(event){
    var clickX = event.clientX + document.body.scrollLeft;
      var clickY = event.clientY + document.body.scrollTop; 

    document.getElementById('bookmark').style.height = clickY + 'px';
    document.getElementById('bookmark2').style.marginTop = clickY + 'px';

    document.getElementById('bookmarkdiv2').style.display = 'block';
    document.getElementById('bookmarkdiv').style.display = 'none';

    setCookie('bookmark_state', true);
}  

function checkBookmark() {
    if (getCookie('bookmark_state') == null) {
        document.getElementById('bookmarkdiv').style.display = 'block';
    }   
    if (getCookie('bookmark_state') == true) {
            document.getElementById('bookmark').style.height = clickY + 'px';
            document.getElementById('bookmark2').style.marginTop = clickY + 'px';

            document.getElementById('bookmarkdiv2').style.display = 'block';
            document.getElementById('bookmarkdiv').style.display = 'none';
    }  
}
</script>
Это было полезно?

Решение

try this for relative to document

document.getElementById('someElement').onclick = function(event){
    var clickX = event.clientX + document.body.scrollLeft;
    var clickY = event.clientY + document.body.scrollTop;

    document.getElementById('object').style.height = clickY + 'px';
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top