Skip to content
Snippets Groups Projects
Select Git revision
  • 97ddc4437b60a18a6913947da67b2a672ae05b46
  • master default protected
  • leo
  • dex
  • pendulum
  • apfelstruder
  • littlerascal
7 results

divtools.js

Blame
  • iddewipe.js 7.42 KiB
    
    // because lots of UI elements are call-and-response,
    // I'm going to keep some top level values, and let them = null 
    // when they are stateless
    let svg, wrapper
    let menu = {
        isLoaded: false,
        isLoading: false
    }
    
    // this runs once everything has loaded 
    window.onload = function() {
        svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
        svg.style.position = 'absolute'
        svg.style.left = 0
        svg.style.top = 0
        svg.style.zIndex = 0
        svg.style.overflow = 'visible'
        svg.setAttribute('width', 2)
        svg.setAttribute('height', 2)
        svg.setAttribute('id', 'svg')
        svg.setAttribute('width', '100%')
        svg.setAttribute('height', '100%')
        document.body.appendChild(svg)
    
        wrapper = document.createElement('div')
        wrapper.id = 'wrapper'
        document.body.append(wrapper)
    
        nav = document.getElementById('nav')
    }
    
    document.body.style.overflow = 'hidden'
    document.body.style.transform = 'scale(1) translate(0px, 0px)'
    document.body.style.transformOrigin = '0px 0px'
    
    function elementIsNotModule(element) {
        if ((element.tagName == 'HTML') || (element.tagName == 'BODY') || (element.tagName == 'svg')) {
            return true
        } else {
            return false
        }
    }
    
    /* ---------------------------        ---------------------------- */
    /* ------------------------- USER EVENTS ------------------------- */
    /* ---------------------------        ---------------------------- */
    
    /*
    // don't appear to need this atm
    // I believe it was here for right-clicking ... to ask for items 
    let lastpos = { x: 0, y: 0 }
    
    onmousemove = function(evt) {
        var cT = getCurrentTransform()
        lastpos.x = cT.ox - cT.tx + (evt.pageX - cT.ox) / cT.s
        lastpos.y = cT.oy - cT.ty + (evt.pageY - cT.oy) / cT.s
    }
    */
    
    onwheel = function(evt) {
        var el = document.elementFromPoint(evt.pageX, evt.pageY)
        if (elementIsNotModule(el)) {
            var cT = DT.getCurrentTransform()
            evt.preventDefault()
            evt.stopPropagation()
            if (evt.deltaY > 0) {
                var scale = 1.05 * cT.s
            } else {
                var scale = 0.95 * cT.s